先根建树中序遍历
来源:互联网 发布:geekbench4 mac下载 编辑:程序博客网 时间:2024/05/22 04:53
Description
1、问题描述
给定一棵按“先根”遍历存储表示的二叉树,请中根遍历这棵二叉树。
2、二叉树创建说明
⑴、按“先根”遍历存储表示的二叉树中,如果在遍历过程中,发现子树为空,输出0
⑵、例如:A有B子树,没有右子树,其“先根”遍历为A B 0 0 0
⑶、例如:A为根,B为A的右孩子;C为B的左孩子,D为B的右孩子,其“先根”遍历为A 0 B C 0 0 D 0 0
Input
第一行:先根遍历的二叉树结点数目(包括空结点)
第二行:n个“先根”遍历二叉树字符序列(用空格隔开)(字符0表示空结点)
Output
第一行:二叉树的中根遍历序列(结点用空格隔开)(最后一个结点之后也留有空格)
Sample Input
9
A 0 B C 0 0 D 0 0
Sample Output
A C B D
#include <iostream>
using namespace std;
#include <string>
const int Max = 30;
class BiTreeNode{
public:
char data;
BiTreeNode *lchild;
BiTreeNode *rchild;
BiTreeNode():lchild(NULL), rchild(NULL){}
};
class BiTree{
public:
BiTreeNode *root;
char strTree[Max];
BiTreeNode *CreateBiTree();
void PreOrder(BiTreeNode *t);
void InOrder(BiTreeNode *t);
void PostOrder(BiTreeNode *t);
int pos;
public:
BiTree(){};
void CreateTree(char TreeArray[],int n);
void InOrder();
};
void BiTree::CreateTree(charTreeArray[],int n)
{
pos = 0; int i;
for(i = 0;i < n;i++)
strTree[i] = TreeArray[i];
root = CreateBiTree();
}
BiTreeNode *BiTree::CreateBiTree()
{
BiTreeNode *T;
char ch;
ch = strTree[pos++];
if(ch == '0')
T = NULL;
else{
T = new BiTreeNode();
T->data = ch;
T->lchild = CreateBiTree();
T->rchild = CreateBiTree();
}
return T;
}
void BiTree::InOrder()
{
InOrder(root);
}
void BiTree::InOrder(BiTreeNode *t)
{
if(t)
{
InOrder(t->lchild);
cout<<t->data<<" ";
InOrder(t->rchild);
}
}
int main()
{
int i,n;
char str[Max];
BiTree t;
//freopen("cin1.txt", "r", stdin);
cin>>n;
for(i = 0;i < n; i++)
cin>>str[i];
t.CreateTree(str, n);
t.InOrder();
cout<<endl;
return 0;
}
- 先根建树中序遍历
- 先序建树,中序遍历、层序遍历
- 二叉树-建树,层次遍历,先序遍历,中序遍历,后序遍历
- 二叉树先序建树及先序遍历
- 二叉树遍历 ,根据先序和中序遍历序列建树
- Tree Traversals Again(通过先序、中序遍历在不建树情况下推出后序遍历)
- 二叉树——根据先序(后序)和中序遍历建树
- 数据结构六:二叉树的先序建树与中序的非递归遍历算法
- c/c++实现利用二叉树的先序遍历和中序遍历序列重建树
- 先序建树中序后序遍历及求叶子节点个数
- 输入先序遍历序列,建树----Java实现
- BST二叉搜索树的建树和先序遍历
- Tree——二叉树中序后序建树,先序遍历
- 华中科技-二叉树遍历1184,先序建树
- 简单先序建树
- 先跟遍历和中跟遍历建树
- HDU 5444 二叉树的遍历,先根据先序遍历建树
- 二叉树的建树、遍历(先序、中序、后序、层次)(递归和非递归)--Java实现
- Sybase的安装、配置及使用(五) Sybase数据库的常用工具说明
- hbase shell应用filter
- unity 框选自由截屏
- 设计模式--单例模式Singleton
- oracle 保留两位小数
- 先根建树中序遍历
- thinkPHP 输出及其模板调用(三)
- 黑马程序员——IOS学习三:Objective-C的扩展OOP,类别,内存管理等——黑马 ios 技术博客
- sql 查询何时何人删除何条记录的存储过程
- BI资料地址
- 有向图求拓扑
- PHP队列实现
- struts2 使用通配符
- QML模型与列表