首页 > 代码库 > uva-122 树的层次遍历

uva-122 树的层次遍历

题意概要:输入二叉树的每一个节点的信息,建树完毕后,按照层次顺序遍历这棵树,然后将每一个节点的权值给输出来!


注意:如果从根到某个叶节点的路径上有的节点没有在输入中给出或者给出超过一次,

应该输出“not complete”.节点数不超过256个!


代码如下:(代码中有详细的注释!)此份代码用时为9ms

#include<iostream>
#include<cstdio>
#include<vector>
#include<queue>
#include<cstring>
using namespace std;
const int maxn=52014;
char str[maxn];
bool failed=false;
vector<int>ans;
struct Node//节点结构体!
{
    bool have_value;
    int value;
    Node *left,*right;
    Node():have_value(false),value(0),left(NULL),right(NULL) {}
};
struct Node *root;//建立根节点!
void remove_tree(Node *now)//将树所占用的内存释放掉!
{
    if(now==NULL)
        return ;
    remove_tree(now->left);
    remove_tree(now->right);
    delete now;
}
Node *newnode()//建立新节点!
{
    return new Node();
}
void addnode(int num,char *s)//增加节点,同时赋值!
{
    int len=strlen(s);
    Node *now=root;
    for(int i=0; i<len; i++)
    {
        if(s[i]=='L')
        {
            if(now->left==NULL)
                now->left=newnode();//建立心新节点!
            now=now->left;
        }
        else if(s[i]=='R')
        {
            if(now->right==NULL)
                now->right=newnode();//建立新节点!
            now=now->right;
        }
    }
    if(now->have_value)failed=true;//如果该节点已经赋值了,那么表示输入有误!
    now->value=http://www.mamicode.com/num;//给节点赋值!>

uva-122 树的层次遍历