数据结构 二叉树的互相遍历求法
来源:互联网 发布:上海软件定制公司 编辑:程序博客网 时间:2024/05/17 08:36
一丶已知前序遍历,中序遍历, 求后序遍历
(这里将读入调换,函数不变,已知中序遍历,前序遍历,求后序遍历 结果一样)
代码:
#include <bits/stdc++.h>int t1[5000] , t2[5000] ;using namespace std ;void build(int a , int b , int n , int flag){if(n==1) {printf("%d ",t1[a]);return ;}else if(n<=0) return ;int i = 0 ;while(t1[a]!=t2[b+i]) i++;build(a+1,b,i,0);build(a+i+1,b+i+1,n-i-1,0);if(flag==1) printf("%d",t1[a]);else printf("%d ",t1[a]);}int main(){int n ;while(cin>>n){for(int i = 1 ; i <= n ; i++) cin>>t1[i]; //*前序for(int i = 1 ; i <=n ; i++) cin>>t2[i] ;//*中序build(1,1,n,1); //*前+中 == 后 printf("\n");}}
二、已知中序,后序,求前序
#include <bits/stdc++.h>using namespace std ;int t1[5000] , t2[5000] ;void build(int a , int b , int n , int flag){if(n==1) {printf(" %d",t1[a]);return ;}else if(n<=0) return ;if(flag==1){printf("%d",t1[a]);}else printf(" %d",t1[a]);int i = 0 ;while(t1[a]!=t2[b+i]) i++;build(a-n+i,b,i,0);build(a-1,b+i+1,n-i-1,0);}int main(){int n ;while(cin>>n){for(int i = 1 ; i<=n ; i++) cin>>t1[i] ; //*中序 for(int i = 1 ; i<=n ; i++) cin>>t2[i] ; //*后序build(n,1,n,1) ;printf("\n");}}
0 0
- 数据结构 二叉树的互相遍历求法
- 二叉树的前序、中序、后序遍历及互相求法
- 二叉树的前序遍历,中序遍历,后序遍历以及相互之间的求法
- 【数据结构】二叉树前序、中序、后序遍历相互求法
- 【数据结构】二叉树前序、中序、后序遍历相互求法
- 数据结构 - 二叉树的遍历
- 数据结构-----二叉树的遍历
- 数据结构----二叉树的遍历
- 数据结构 二叉树的遍历
- 【数据结构】 二叉树的遍历
- 【数据结构】二叉树的遍历
- 数据结构 - 二叉树的遍历
- 数据结构二叉树的遍历
- 二叉树的遍历(数据结构)
- 数据结构--二叉树的遍历
- [数据结构]二叉树的遍历
- 【数据结构】二叉树的遍历
- 【数据结构】二叉树的遍历
- src目录结构的改变
- 第16周 啊哈算法 深度优化搜索算法
- Spring与Quartz的整合实现定时任务调度
- 数据类型及变量
- Charles抓取移动设备https请求常见问题
- 数据结构 二叉树的互相遍历求法
- 提交按钮默认不可点击,表单input输入正确后才可点击
- 使用WIFI连接android进行调试和adb操作
- 欢迎使用CSDN-markdown编辑器——备份
- JAVA面试宝典2015记录
- truncate与delete的区别
- CCS编译器报错: error #10234-D: unresolved symbols remain
- 一片空白
- 文章标题