uva 112 Tree Summing
来源:互联网 发布:淘宝评论炒作多久消失 编辑:程序博客网 时间:2024/05/03 22:22
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=48
是一道标准的建树遍历问题,给你一个树的构造,也即是先序遍历。然后遍历找出每个叶子从根到叶的权值之和,判断是否与所求相同。
二叉树搞得我抓耳挠腮的,还是由于不太熟悉的原因,加上这道题的输入不太好搞,几度想放弃治疗,不过还是挺过来了。
递归建二叉树。
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<map>#include<queue>#include<stack>#include<vector>#include<ctype.h>#include<algorithm>#include<string>#define PI acos(-1.0)#define maxn 10005#define INF 1<<25#define MAX 0x7ffffffftypedef long long ll;using namespace std;struct Node{ int v; Node *lchild; Node *rchild;};Node *root;int jud=0;int tot;int Buildtree(Node *&node){ char a,b; char num[105]; bool j=0,Njud=0; int n=0; while(scanf("%c",&a)) { if(a=='-') { j=1; Njud=1; } else if(a>='0'&&a<='9') { n*=10; n+=a-'0'; Njud=1; } else if(a==')'&&!Njud) { node=NULL; return 0; } else if((a==')'||a=='(')&&Njud) { node=(Node*)malloc(sizeof(Node)); node->v=n*(j==1?-1:1); Buildtree(node->lchild); Buildtree(node->rchild); while(scanf("%c",&b)) { if(b==')')return 0; } return 0; } else if(a==')') return 0; }}int dfs(Node *&node,int a){ if(jud) return 0; if(!node->lchild&&!node->rchild) { if(a+node->v==tot) jud=1; return 0; } if(node->lchild) dfs(node->lchild,a+node->v); if(node->rchild) dfs(node->rchild,a+node->v);}int main(){ while(scanf("%d",&tot)!=EOF) { jud=0; getchar(); root=NULL; Buildtree(root); if(!root) { printf("no\n"); continue; } dfs(root,0); if(jud) printf("yes\n"); else printf("no\n"); }}
0 0
- uva 112 Tree Summing
- uva 112 - Tree Summing
- uva 112 - Tree Summing
- UVa 112 - Tree Summing
- uva 112 - Tree Summing
- uva 112 Tree Summing
- UVA 112 Tree Summing
- UVa 112 - Tree Summing
- UVa 112 - Tree Summing
- UVa 112 - Tree Summing
- uva 112 - Tree Summing
- uva-112 Tree Summing
- UVA 112 Tree Summing
- UVA 112 Tree Summing
- UVa 112 Tree Summing
- UVa 112 Tree Summing
- UVA 112 Tree Summing
- uva 112 Tree Summing
- 【精品教程】HTML5移动Web开发指南文档分享
- directshow获取 颜色空间 分辨率
- HTML5+CSS3<驴子跳游戏>网页游戏源码分享
- SQL UNION 和 UNION ALL 操作符
- [USACO 4.2.1] Drainage Ditches
- uva 112 Tree Summing
- Unity3D官方二维游戏开发教程中文版分享
- 对新手有用的JavaScript开发小建议
- 如何理解Hadoop-Hbase原理与应用小结
- 盗雪html5入门基础视频教程全集下载
- VC 调试之内存
- VS2008 环境中完美搭建 Qt 4.7.4 静态编译的调试与发布
- 谷歌30个无厘头面试题
- 黑马程序员_java_面向对象_继承