黑马程序员技术交流社区
标题:
二叉树遍历问题(前序,中序,后序)
[打印本页]
作者:
张继鲁
时间:
2014-2-24 09:21
标题:
二叉树遍历问题(前序,中序,后序)
a
/ \
b c
/\ /
e f g
思想方法
作者:
梦里花-静
时间:
2014-2-24 09:39
前序的遍历顺序是根,左子树,右子树,这个二叉树的前序遍历是:abefcg
中序的遍历顺序是左子树,根,右子树,这个二叉树的前序遍历是:ebfagc
后序的遍历顺序是左子树,右子树,根,这个二叉树的前序遍历是:efbgca
具体的你可以看一下视频等,还有个链接 你也可以看一下http://baike.so.com/doc/819994.html
作者:
syw02014
时间:
2014-2-24 09:47
在C/C++语言中,这是数据结构的问题,牵涉到对二叉树的操作,这里主要是对二叉树的遍历中最常见的方法: 前序,中序,后序;
先(根)序的遍历算法:
若二叉树为空树,则空操作;否则,
(1)访问根结点;
(2)先序遍历左子树;
(3)先序遍历右子树。
中(根)序的遍历算法:
若二叉树为空树,则空操作;否则,
(1)中序遍历左子树;
(2)访问根结点;
(3)中序遍历右子树。
后(根)序的遍历算法:
若二叉树为空树,则空操作;否则,
(1)后序遍历左子树;
(2)后序遍历右子树;
(3)访问根结点。
给你一个C++的算法:
void Btree::BinTraversepre(BitTree BT)//按先序输出二叉树中的所有结点{ if(BT) { cout<<BT->data<<" "; BinTraversepre(BT->lchild); BinTraversepre(BT->rchild); }}
void Btree::BinTraversein(BitTree BT)//按中序输出二叉树中的所有结点{ if(BT) { BinTraversein(BT->lchild); cout<<BT->data<<" "; BinTraversein(BT->rchild); }}
void Btree::BinTraversepost(BitTree BT)//按后序输出二叉树中的所有结点{ if(BT) { BinTraversepost(BT->lchild); BinTraversepost(BT->rchild); cout<<BT->data<<" "; }}
a
/ \
b c
/\ /
e f g
前序遍历是:abefcg中序遍历是:ebfagc后序遍历是:efbgca
还有一个例子给你两个附件;
图片1.png
(44.48 KB, 下载次数: 15)
下载附件
2014-2-24 09:46 上传
图片2.png
(52.19 KB, 下载次数: 23)
下载附件
2014-2-24 09:46 上传
作者:
丶小天
时间:
2014-2-24 17:05
树是一种数据结构,二叉树是树的一种。他的结构是,根,左儿子,右儿子。。
前序,中序和后序是树遍历的三种不同形式
前序遍历,也叫先根遍历,遍历的顺序是,根,左子树,右子树
中序遍历,也叫中跟遍历,顺序是 左子树,根,右子树
后序遍历,也叫后跟遍历,遍历顺序,左子树,右子树,根
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2