uva699(根据先序还原树)
2015-10-03 12:51
239 查看
思路:建立一个数组,从中间位置开始建树做记录,往左子树走就左加,往右子树走就右加;
点击题目链接
点击题目链接
/***************************************** Author :Crazy_AC(JamesQi) Time :2015 File Name : *****************************************/ // #pragma comment(linker, "/STACK:1024000000,1024000000") #include <iostream> #include <algorithm> #include <iomanip> #include <sstream> #include <string> #include <stack> #include <queue> #include <deque> #include <vector> #include <map> #include <set> #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> #include <limits.h> using namespace std; #define MEM(a,b) memset(a,b,sizeof a) typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> ii; const int inf = 1 << 30; const int INF = 0x3f3f3f3f; const int MOD = 1e9 + 7; inline int Readint(){ char c = getchar(); while(!isdigit(c)) c = getchar(); int x = 0; while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); } return x; } int res[1010]; typedef struct node{ int t; int val; node* l,*r; }node; node* built(int p){ node *rt; int x; scanf("%d",&x); if (x == -1) { rt = NULL; return rt; } res[p] += x; rt = (node*)malloc(sizeof (node)); rt->val = x; rt->l = built(p - 1); rt->r = built(p + 1); return rt; } int main() { // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); int icase = 0; while(true){ node* root; memset(res, 0,sizeof res); root = built(500); if (root == NULL) return 0; vector<int> vec; for (int i = 0;i < 1000;i++){ if (res[i]){ vec.push_back(res[i]); } } printf("Case %d:\n",++icase); for (int i = 0;i < vec.size();++i){ printf("%d%c",vec[i],(i == vec.size() - 1)?'\n':' '); } printf("\n"); } return 0; }
相关文章推荐
- ubuntu无线上网静态ip配置以及配置静态IP 之后无法正常上网的解决方案
- 151003-动起来-Javascript
- linux进程管理工具
- 基OOP知识
- 【Linux导论】图形接口(Graphical Interface)
- ***************架构师**********************
- Python Tab/space error
- 【转】MapReduce程序的工作过程
- Ubuntu 15.04 clang++ 3.6 编译boost 1.59/1.55
- nasm : 使用带参数的宏实现逻辑控制
- 从零自学Hadoop(06):集群搭建
- 二叉树,区分子节点和父节点的层序遍历
- Android Material Design:基于CoordinatorLayout实现向上滚动导航条ToolBar滚出、向下滚动导航条滚出
- react native windows开发环境搭建(一)
- [Leetcode] Peeking Iterator, Solution
- QXmlStreamReader 读取xml 文件
- 【转】hadoop机架感知
- Android Studio 安装新 code themes
- ISO/IEC 9899:2011 条款6.5.5——乘法操作符
- UVA - 232 Crossword Answers