扩展二叉树
来源:互联网 发布:淘宝用户画像怎么做 编辑:程序博客网 时间:2024/06/10 17:28
【例3-5】扩展二叉树
时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。
现给出扩展二叉树的先序序列,要求输出其中序和后序序列。
【输入】
扩展二叉树的先序序列。
【输出】
输出其中序和后序序列。
【输入样例】
ABD..EF..G..C..
【输出样例】
DBFEGACDFGEBCA
【来源】
#include<iostream>#include<string>#include<cstring>#include<algorithm>using namespace std;typedef struct node;typedef node *tree;//tree相当于node struct node{//一个节点包括数据域,左右孩子 char data;treelchild,rchild;};tree bt;int i;string s;void build(tree &bt)//建树{if(s[++i]!='.'){bt=new node;bt->data=s[i];build(bt->lchild);build(bt->rchild);}else bt=NULL;} void printzx(tree &bt)//输出中序序列 {if(bt){printzx(bt->lchild);cout<<bt->data;printzx(bt->rchild);}}void printhx(tree &bt)//输出后序序列 {if(bt){printhx(bt->lchild);printhx(bt->rchild);cout<<bt->data;}}int main(){//freopen("tree_b.in","r",stdin);//freopen("tree_b.out","w",stdout);cin>>s;i=-1;build(bt);printzx(bt);//中序 cout<<endl;printhx(bt);//后序 cout<<endl;return 0;}
阅读全文
0 0
- 扩展二叉树
- 扩展二叉树
- 扩展二叉树(树)
- 3.10分层遍历二叉树-扩展问题
- 二叉树的建立(扩展二叉树法)
- 使用扩展二叉树的方法建立二叉树
- AVL平衡树 - 二叉搜索树的扩展1
- 伸展树 - 二叉搜索树的扩展2
- 编程之美-重建二叉树扩展问题1 2
- 3.10 分层遍历二叉树 扩展问题一、二
- 3.10 分层遍历二叉树 扩展问题一、二
- 编程之美 3.9 重建二叉树 扩展问题
- 《数据结构》第五章 树和二叉树 扩展二叉实现代码示例
- 【暂无】 二叉树 扩展二叉树(add-tree.cpp)
- 剑指Offer--039-平衡二叉树(判断一棵二叉树是否是平衡二叉树)[扩展附加题]
- 根据扩展二叉树前序序列生成二叉树,输入某个节点的值,查找其双亲节点的值(二叉链表)
- 树——从最下层向上打印二叉树(层序遍历扩展)
- 二叉树扩展之三叉树C++类模板的实现
- Docker 镜像使用
- js 实时监听input中值变化
- PAT 1018. Public Bike Management (30) DFS求解多最短路问题
- 回顾大一·C语言编程5.2(2)
- Docker 容器连接
- 扩展二叉树
- 419. Battleships in a Board
- 内核和文件系统的关系
- scala 知识总结 apply与unapply
- 文件分类大师,一款能够拍照时分类的app
- strcpy、strncpy与memcpy的区别与使用方法
- 机器学习资源
- 快速排序实现以及时间复杂度分析
- 摄像机标定学习笔记(9) 关于单应性