博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树层次遍历。
阅读量:5295 次
发布时间:2019-06-14

本文共 1785 字,大约阅读时间需要 5 分钟。

 

 

 

 

 

 

 

题目:

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int maxn = 256 + 110; 9 10 struct Node{ 11 bool have_value; 12 int v; 13 Node* left, *right; 14 Node():have_value(false), left(NULL), right(NULL){} 15 }; 16 17 Node* root; 18 19 Node* newnode() 20 { 21 return new Node(); 22 } 23 24 bool failed; 25 void addnode(int v, char* s) 26 { 27 int n = strlen(s); 28 Node* u = root; 29 for(int i=0; i
left==NULL) u->left = newnode(); 33 u=u->left; 34 } 35 else if (s[i]=='R') 36 { 37 if(u->right==NULL) u->right = newnode(); 38 u= u->right; 39 } 40 if(u->have_value) failed = true; 41 u->v=v; 42 u->have_value = true; 43 } 44 45 void remove_tree(Node* u) 46 { 47 if(u==NULL) return; 48 remove_tree(u->left); 49 remove_tree(u->right); 50 delete u; 51 } 52 53 char s[maxn]; 54 bool read_input(){ 55 failed = false; 56 remove_tree(root); 57 root = newnode(); 58 for(;;) 59 { 60 if(scanf("%s", s)!=1) return false; 61 if(!strcmp(s, "()")) break; 62 int v; 63 sscanf(&s[1], "%d", &v); 64 addnode(v, strchr(s, ',')+1); 65 } 66 return true; 67 } 68 69 bool bfs(vector
& ans) 70 { 71 queue
q; 72 ans.clear(); 73 q.push(root); 74 while(!q.empty()) 75 { 76 Node* u = q.front(); q.pop(); 77 if(!u->have_value) return false; 78 ans.push_back(u->v); 79 if(u->left!=NULL) q.push(u->left); 80 if(u->right!=NULL) q.push(u->right); 81 } 82 return true; 83 } 84 85 int main() 86 { 87 vector
ans; 88 while(read_input()) 89 { 90 if(!bfs(ans)) failed = 1; 91 if(failed) printf("not complete\n"); 92 else 93 { 94 for(int i=0; i
View Code

 

转载于:https://www.cnblogs.com/acm1314/p/4543531.html

你可能感兴趣的文章
TSQL点滴
查看>>
Selenium_Python接口-Alert类
查看>>
linux远程win7教程
查看>>
移动应用开发选型:向左还是向右?
查看>>
开发进度一
查看>>
十天冲刺(6)
查看>>
加载selenium2Library失败---robotframework环境搭建(site-packages下无selenium2library文件夹)...
查看>>
MyBaits学习
查看>>
实体标签,媒体标签,飘动标签
查看>>
MySQL安装的详细步骤
查看>>
Deformity JSP Webshell、Webshell Hidden Learning
查看>>
关于 Go2Shell (Go2Shell 可以在 Finder 中打开当前目录的终端窗口,是一个对开发者来说非常有用的App)...
查看>>
2008年我买了一本书 书名叫“PHP 6”
查看>>
管道,数据共享,进程池
查看>>
UITableView beginUpdate和endUpdate使用的前提
查看>>
Java基础--面向对象编程4(多态)
查看>>
CSS
查看>>
shell 管道和tee使用时获取前面命令返回值
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>