A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张继鲁 中级黑马   /  2014-2-24 09:21  /  1349 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

            a
           / \
          b   c
         /\   /
         e f  g
思想方法

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

3 个回复

倒序浏览
前序的遍历顺序是根,左子树,右子树,这个二叉树的前序遍历是:abefcg
中序的遍历顺序是左子树,根,右子树,这个二叉树的前序遍历是:ebfagc
后序的遍历顺序是左子树,右子树,根,这个二叉树的前序遍历是:efbgca
具体的你可以看一下视频等,还有个链接 你也可以看一下http://baike.so.com/doc/819994.html

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
在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, 下载次数: 11)

图片1.png

图片2.png (52.19 KB, 下载次数: 19)

图片2.png

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1 下次可以是Java。

查看全部评分

回复 使用道具 举报
树是一种数据结构,二叉树是树的一种。他的结构是,根,左儿子,右儿子。。

前序,中序和后序是树遍历的三种不同形式
前序遍历,也叫先根遍历,遍历的顺序是,根,左子树,右子树
中序遍历,也叫中跟遍历,顺序是 左子树,根,右子树
后序遍历,也叫后跟遍历,遍历顺序,左子树,右子树,根

评分

参与人数 1技术分 +1 收起 理由
何伟超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马