树的输入、存储与遍历
来源:互联网 发布:乌克兰女人在中国知乎 编辑:程序博客网 时间:2024/06/09 17:11
问题描述:输入一棵二叉树,使用二叉链表结构存储二叉树,并用递归方法输出先序、中序、后序三种遍历结果。
#include<iostream>#include<cstdlib>using namespace std;typedef struct BiTNode {char data;BiTNode *lchild, *rchild;}BiTNode,*BiTree;void CreateBiTree(BiTree &T){//以先序输入数据char ch;ch=getchar();if(ch==' ') T=NULL;else {if(!(T=(BiTNode *)malloc(sizeof(BiTNode)))) exit(0);T->data = ch;CreateBiTree(T->lchild);CreateBiTree(T->rchild);}}void PreOrderTraverse(BiTree &T) {//先序遍历if(T==NULL) return;if(T->data!=' ') cout<<T->data;PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchild);}void InOrderTraverse(BiTree &T) {//中序遍历if(T==NULL) return;InOrderTraverse(T->lchild);if(T->data!=' ') cout<<T->data;InOrderTraverse(T->rchild);}void PostOrderTraverse(BiTree &T){//后序遍历if(T==NULL) return;PostOrderTraverse(T->lchild);PostOrderTraverse(T->rchild);if(T->data!=' ') cout<<T->data;}int main(){BiTree T;cout<<"Enter the numbers(Preorder):"<<endl;CreateBiTree(T);cout<<"The Preorder is:"<<endl;PreOrderTraverse(T);cout<<endl;cout<<"The Inorder is:"<<endl;InOrderTraverse(T); cout<<endl;cout<<"The Posteorder is:"<<endl;PostOrderTraverse(T);cout<<endl;return 0;}
0 0
- 树的输入、存储与遍历
- 树的存储与遍历
- 二叉树的存储与遍历
- 图的存储与遍历
- 图的存储与遍历
- 图的存储与遍历
- 图的存储与遍历
- 二叉树的输入、遍历、与线索化
- 普通树的存储与遍历(合集)
- 二叉树的建立与存储,以及遍历方法
- 二叉树的链表存储与遍历
- 数据结构 树的表示,存储结构与遍历
- 数据结构-二叉树的存储结构与遍历
- 图的存储结构与遍历
- 图的邻接矩阵存储与遍历
- 图的邻接表存储与遍历
- 树的存储及遍历
- 树的分类、存储、遍历
- atlassian JIRA 插件开发(八) — MVC实现
- 实时数据库
- 数值的整数次方
- C语言冒泡排序法分析及代码实现
- UVA 12657 Boxes in a Line
- 树的输入、存储与遍历
- NSDictionary
- centos7 上为php-fpm安装gd扩展库
- 处女博,《染色法与构造法在棋盘上的应用》的理解
- 最快让你上手ReactiveCocoa之基础篇
- 基于java config的springSecurity--单元测试
- java异常基础知识
- block小解
- 菜鸟系列——欧拉函数