UVa 112 - Tree Summing
2012-07-31 09:43
218 查看
第一次做二叉树的题,参考了某大神的代码,充分领略到大神递归的境界,光研究他的代码就花了好几个小时,还看了cin.ignore(),cin.clear(),cin.fail()以及cin.sync()几个cin流的实质和妙用,完全连指针链表都没用只用递归就把此题给A掉了,受益不少啊~~~
代码如下:
代码如下:
#include<iostream> #include<cstring> #include<cstdlib> #include<cstdio> #include<cmath> #include<string> using namespace std; int flag; int t_sum(int n,int sum) { int data; char c; cin>>c; //输入左括号 cin>>data; if(!(cin==0)) { sum+=data; int ok1=t_sum(n,sum); //左树 int ok2=t_sum(n,sum); //右树 if(!ok1&&!ok2&&!flag) //如果左右两树都为空,即是叶子,且flag还是0,那么对总和sum与n进行比较 if(sum==n) //若相等则将flag赋为1 flag=1; cin>>c; //输入右括号 return 1; } else { cin.clear(); //清除错误 cin>>c; return 0; } } int main() { #ifdef test freopen("sample.txt","r",stdin); #endif int n; while(cin>>n) { flag=0; t_sum(n,0); cout<<(flag?"yes":"no")<<endl; } return 0; }
相关文章推荐
- UVA - 112 Tree Summing
- poj 1145 (uva 112) Tree Summing
- UVa 112 - Tree Summing
- POJ 题目1145/UVA题目112 Tree Summing(二叉树遍历)
- uva 112 Tree Summing
- UVa 112|POJ 1145|Tree Summing|字符串处理|树的遍历
- UVA 112 - Tree Summing(栈)
- UVA 112 Tree Summing
- UVA 112(Tree Summing)回溯
- UVA 112 - Tree Summing
- POJ 题目1145/UVA题目112 Tree Summing(二叉树遍历)
- UVA - 112 Tree Summing
- UVA 112-Tree Summing
- uva 112 Tree Summing
- uva112-Tree Summing[动态建树]
- uva 112 Tree Summing
- UVA 112 - Tree Summing
- uva 112 - Tree Summing
- Tree Summing - UVa 112 简单二叉树(丧病的数据输入)
- uva112 Tree Summing