UVA122 二叉树的层次遍历

Posted hh13579

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA122 二叉树的层次遍历相关的知识,希望对你有一定的参考价值。

题目链接

https://vjudge.net/problem/UVA-122

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
const int maxn=256+10;
char s[maxn];
struct Node
    bool have_value;
    int v;
    Node *left,*right;
    Node():have_value(false),left(NULL),right(NULL);
;
Node *root;
Node *newnode()return new Node();
bool failed;
void addnode(int v,char *s)

    int n=strlen(s);
    Node *u=root;
    for(int i=0;i<n;i++)
    
        if(s[i]==L)
        
        if(u->left==NULL)
        u->left=newnode();
        u=u->left;
    
    else if(s[i]==R)
    
        if(u->right==NULL)
        u->right=newnode();
        u=u->right;
    
    
    if(u->have_value)
    failed = true;
    u->v=v;
    u->have_value=true;

void remove_tree(Node *u)

    if(u==NULL)return;
    remove_tree(u->left);
    remove_tree(u->right);
    delete u;

bool bfs(vector<int> &ans)

    queue<Node*>q;
    ans.clear();
    q.push(root);
    while(!q.empty())
    
        Node *u=q.front();
        q.pop();
        if(!u->have_value)return false;
        ans.push_back(u->v);
        if(u->left!=NULL)q.push(u->left);
        if(u->right!=NULL)q.push(u->right);
    
    return true;

bool read_input()

    failed =false;
    root=newnode();
    for(;;)
    
        if(scanf("%s",s)!=1)return false;
        if(strcmp(s,"()")==0)break;
        int v;
        sscanf(&s[1],"%d",&v);
        addnode(v,strchr(s,,)+1);
    
    return true;

int main()

vector<int>ans;
while(read_input())

    if(!bfs(ans))failed=1;
       if (failed) printf("not complete\n");
        else 
            for (int i = 0; i < ans.size(); i++) 
                if (i != 0) printf(" ");
                printf("%d", ans[i]);
            
            printf("\n");
        
    
  

return 0;

 

以上是关于UVA122 二叉树的层次遍历的主要内容,如果未能解决你的问题,请参考以下文章

UVa 122 Trees on the level(链式二叉树的建立和层次遍历)

UVa 122 树的层次遍历

Uva 122 树的层次遍历 Trees on the level lrj白书 p149

6-7 树的层次遍历 uva122

紫书例题6-7 树的层次遍历

树的层次遍历(Trees on the level,UVA 122)