数据结构 树和二叉树

实验四 树和二叉树

1. 实验目的:

掌握二叉树遍历算法的应用,熟练使用先序、中序、后序3种递归和非递归遍历算法以及层次遍历算法进行二叉树问题的求解。

2. 仪器与材料:

装有Windows操作系统和VC++6.0编程环境的PC机一台。

3. 实验内容:

编写一个程序exp7-7. cpp实现以下功能,并对图7. 33所示的二叉树进行验证。

  1. 采用先序遍历方法输出所有从叶子结点到根结点的逆路径。
  2. 采用先序遍历方法输出第一条最长的逆路径。
  3. 采用后序非递归遍历方法输出所有从叶子结点到根结点的逆路径。

4. 实验记录:

树是一种非线性的结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。

二叉树的存储结构

顺序结构:用数组表示,前提是二叉树要为一棵完全二叉树

链式结构:用链表表示二叉树

    函数功能:

(1)二叉树的括号表示:“A(B(D,E(H(J,K(L,M(,N))))),C(F,G(,I)))”.

(2)输出二叉树b

(3)输出’H’节点的左,右孩子节点值

(4)输出二叉树b的高度

(5)释放二叉树

(6)输出二叉树的宽度

(7)输出二叉树的节点数

(8)输出二叉树的叶子节点的数

    CreateBtree(*b,*str)

    DestroyBtree(&b)

FindNode(b,x)

LchildNode(p)

RchildNode(p)

BTHeight(b)

DisBtree(b)

 

5. 实验体会:

先序遍历:按照根节点->左子树->右子树的顺序访问二叉树。后序遍历:按照左子树->右子树-->根节点的顺序访问二叉树。先序遍历方法输出每个叶子结点到根结点的路径序列, 输出栈中所有结点值, 最后用先序遍历方法输出一条最长路径。遍历过程中经过节点的路线一样;只是访问各个节点的时机不同,递归算法主要使用堆栈来实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值