利用二叉树中序及先序遍历确定该二叉树的后序序列(0984)
来源:互联网 发布:浙大软件工程硕士 编辑:程序博客网 时间:2024/06/05 05:40
已知二叉树的中序和先序遍历可以唯一确定后序遍历、已知中序和后序遍历可以唯一确定先序遍历,但已知先序和后序,却不一定能唯一确定中序遍历。现要求根据输入的中序遍历结果及先序遍历结果,要求输出其后序遍历结果。
Description
输入数据占2行,其中第一行表示中序遍历结果,第二行为先序遍历结果。
Input
对测试数据,输出后序遍历结果。
Output
1
2
BFDAEGC
ABDFCEG
Sample Input
1
2
FDBGECA
#include<stdio.h>#include<algorithm>#include<string.h>#include<iostream>using namespace std;struct btree{char st;btree *left, *right;};btree* build(char *pre,char *mid,int n)//先序,中序,二叉树节点个数{btree *b;char r, *p;int k;if (n <= 0)return NULL;b = new btree;b->st = *pre;for (p = mid; p < mid + n; p++){if (*p == *pre)break;}k = p - mid;//表示当前根节点b->left = build(pre + 1, mid, k);//左先序,左中序,左子树节点b->right = build(pre + k + 1, p + 1, n - 1 - k);//右先序,右中序,左子树节点return b;//返回根节点}void Printf(btree *root)//后序遍历{if (root == NULL){return;}Printf(root->left);Printf(root->right);cout << root->st;}int main(){char zhong[1000];char first[1000];cin >> zhong >> first;btree *root = build(first, zhong, strlen(first));Printf(root);return 0;}
0 0
- 利用二叉树中序及先序遍历确定该二叉树的后序序列(0984)
- swustoj利用二叉树中序及后序遍历确定该二叉树的先序序列(0983)
- 【数据结构_树_Tree_0983】利用二叉树中序和后序遍历确定二叉树的先序遍历
- 二叉树:根据二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列
- 利用先序遍历创建二叉树的后序遍历序列(0979)
- 已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列
- 已知二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列
- 只给出先序遍历和后序遍历不能唯一确定二叉树的例子
- 已知二叉树的先序、中序遍历序列,求其后序遍历结果。(hduoj1710)
- 先序、中序、后序遍历二叉树及二叉搜索树的总结
- 已知二叉树的先序遍历和中序遍历序列,输出后序遍历序列
- 二叉树的先序建立及先序遍历:
- 二叉树的后序遍历序列
- 二叉树的先、中、后序遍历及层次遍历的迭代版算法
- 二叉树------二叉搜索树的后序遍历序列
- 利用栈实现的二叉树的先、中、后序遍历
- 给定二叉树的先序遍历和中序遍历,输出它的后序遍历序列
- 求二叉树的先序遍历序列
- android java进程管理(二)之zygote
- jzoj 5061. 【GDOI2017第二轮模拟day1】最长路径 动态规划
- STM32的CAN过滤器详解
- 控制器减负之分离数据源
- javascript中var=a=b=c=2代表什么
- 利用二叉树中序及先序遍历确定该二叉树的后序序列(0984)
- 正则表达式
- CANOpen报文类型
- A/B 扩展欧几里得与取余
- Android Volley http缓存
- BorderFactory
- DOM文档加载顺序及readyState的状态
- 【nginx】nginx 配置那些事儿
- Genexus 15 安卓SDK配置项