构建二叉树并实现递归遍历
2012-09-10 17:25
302 查看
二叉树的递归遍历相当简单,以下代码实现由先序ABDFEGHC,中序DFBGEHAC确定的二叉树,并实现递归的遍历,
执行程序时输入ABD#F##EG##H##C##
#include<iostream> using namespace std; typedef struct BinNode{ char data; BinNode *lchild,*rchild; }bin_tree,*tree; void creat_tree(tree &t){ char ch; cin>>ch; if(!cin.eof()){ if(ch=='#') t=NULL; else{ t=new bin_tree; if(!t) exit(0); t->data=ch; creat_tree(t->lchild); creat_tree(t->rchild); } } } void pre_order(tree &t){ if(t){ cout<<t->data<<" "; pre_order(t->lchild); pre_order(t->rchild); } } void mid_order(tree &t){ if(t){ mid_order(t->lchild); cout<<t->data<<" "; mid_order(t->rchild); } } void post_order(tree &t){ if(t){ post_order(t->lchild); post_order(t->rchild); cout<<t->data<<" "; } } void main(){ tree t; cout<<"请输入二叉树节点:"; creat_tree(t); cout<<"\n先序遍历序列为:"; pre_order(t); cout<<"\n中序遍历序列为:"; mid_order(t); cout<<"\n后序遍历序列为:"; post_order(t); cout<<endl; }
相关文章推荐
- c原生实现二叉树的构建和 非递归遍历二叉树的方法
- java 实现二叉树的构建,先序,中序,后序,层次,递归,非递归的遍历
- 二叉树构建,先序,中序,后序遍历(以及非递归实现),广度优先遍历
- 二叉树构建,先序,中序,后序遍历(以及非递归实现),广度优先遍历
- 二叉树构建,先序,中序,后序遍历(以及非递归实现),广度优先遍历
- 二叉树的构建和三种遍历算法 (递归实现)
- 二叉树(利用栈和队列实现递归和非递归遍历,构建等)
- Java实现二叉树的递归构建及先序、中序、后序、层序遍历(递归和循环)
- JAVA实现二叉树及递归遍历二叉树
- 43.递归和非递归俩种方法实现二叉树的前序遍历。
- Python数据结构之二叉树(涵盖了构建、删除、查找、字典转换、非递归与递归遍历等)
- 二叉树的创建,遍历,查找,查找父节点,深度,大小等的递归实现
- 【学习笔记】非递归实现先后根遍历二叉树
- java实现二叉树的构建以及3种遍历方法
- 二叉树先中后序遍历(递归、非递归方法)、层序遍历 Java实现
- 二叉树的递归实现及递归遍历
- 二叉树前序、中序、后序非递归遍历实现(C语言)
- 二叉树先序,中序,后序遍历非递归实现
- 二叉树的基本实现和遍历——递归
- 二叉树(2)——遍历的非递归实现