博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Binary Tree Traversals
阅读量:7242 次
发布时间:2019-06-29

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

C:不要在for循环内定义变量,在函数开始处定义变量

View Code
#include
#include
#include
typedef struct tree{ int data ; struct tree *l, *r ;}tree, *tr ;int flag ;tr creat(int *root, int*in, int k){ tr t ; int *p ,m; if(k<=0) return NULL ; t = (struct tree*)malloc(sizeof(struct tree)) ; t->data = *root ; for(p=in; p!=NULL; p++) if(*p==*root) break ; m = p - in ; t->l = creat(root+1, in, m) ; t->r = creat(root+m+1, p+1, k-m-1) ; return t ;}void postorder(tr t){ if(t!=NULL) { postorder(t->l) ; postorder(t->r) ; if(flag) printf(" ") ; flag = 1 ; printf("%d", t->data) ; }}int main(){ tr t ; int n,i ; int root[1001], in[1001] ; while(scanf("%d", &n)!=EOF) { flag = 0 ; for(i=0; i

C++:

View Code
#include
using namespace std;typedef struct tree{ int data; struct tree *r,*l;}tree,*tr;int flag;tr creat(int *a,int *b,int n){ tr s; int *p,k; if(n <= 0) return NULL; s = new tree; s->data = *a; for(p=b; p!=NULL; p++) { if(*p == *a) break; } k = p - b; s->l = creat(a + 1,b,k); s->r = creat(a + k + 1,p + 1,n - k - 1); return s;}void postorder(tr b){ if(b != NULL) { postorder(b->l); postorder(b->r); if(flag) cout<<" "; flag = 1; cout<
data; }}int main(){ int a[1001],b[1001]; int n; while(cin>>n) { flag = 0; for(int i = 0;i < n;i ++) cin>>a[i]; for(int i = 0;i < n;i ++) cin>>b[i]; postorder(creat(a,b,n)); cout<

注意输入输出格式,已知先序和中序,求后序

 

转载于:https://www.cnblogs.com/yelan/archive/2013/04/01/2994241.html

你可能感兴趣的文章
实现表格tbody内滚动
查看>>
jdbc链接数据库
查看>>
git 分支管理
查看>>
【高效程序员系列】目录
查看>>
JS中循环逻辑和判断逻辑的使用实例
查看>>
从零开始开发一个简易的类vue-cli构建工具
查看>>
中国工业软件成立联盟合力对外
查看>>
PAT 2-10. 海盗分赃(25)
查看>>
网络攻防_实验二+
查看>>
Quick-Cocos2d-x初学者游戏教程(十) ---------------- 添加游戏障碍物
查看>>
Maven环境下MyBatisGenerator 配置
查看>>
20180925-6 四则运算试题生成
查看>>
django 验证码实现
查看>>
HTML - 网页特殊字符大全(转)
查看>>
sift算法中翻译的第11页中比值问题
查看>>
Unity3D研究院编辑器之不实例化Prefab获取删除更新组件(十五)
查看>>
centos7搭建FTP服务器
查看>>
HDU-4033 Fruit Ninja 几何 二分搜索
查看>>
POJ-1057 FILE MAPPING 恶心模拟
查看>>
SpringMVC 之数据转换和国际化
查看>>