首页 > 代码库 > 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 树的层次遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。