没有合适的资源?快使用搜索试试~ 我知道了~
首页用递归和非递归算法实现二叉树的三种遍历
用递归和非递归算法实现二叉树的三种遍历

有测试结果 (一) 从键盘输入二叉树的扩展先序遍历序列,建立二叉树的二叉链表存储结构; (二) 分别用递归和非递归算法实现二叉树的三种遍历;
资源详情
资源评论
资源推荐

A
B
E
F
C
G
D
《数据结构与算法》实验报告三
——二叉树的操作与应用
一 实验目的
熟悉二叉链表存储结构的特征,掌握二叉树遍历操作及其应用
二 实验要求(题目)
说明:以下题目中(一)为全体必做,(二)(三)任选其一完成
(一) 从键盘输入二叉树的扩展先序遍历序列,建立二叉树的二叉链表存储结构;
(二) 分别用递归和非递归算法实现二叉树的三种遍历;
(三) 模拟 资源管理器中的目录管理方式模拟实际创建目录结构并以
二叉链表形式存储按照凹入表形式打印目录结构(以扩展先序遍历序列输入建
立二叉链表结构),如下图所示基本要求限定目录名为单字符扩展允许目
录名是多字符组合
三 分工说明
一起编写、探讨流程图,根据流程图分工编写算法,共同讨论修改,最后
上机调试修改。
四 概要设计
实现算法,需要链表的抽象数据类型:
数据对象: 是具有相同特性的数据元素的集合
数据关系 :
若 为空集,则 为空集,称 为空二叉树;

若 不为空集,则 为, 是如下二元关系;
() 在 中存在唯一的称为根的数据元素 ,它在关系 下无前驱;
( ) 若 -不为空,则存在 -=,,且 !
为空集;
(") 若 不为空,则 中存在唯一的元素 #,$,#%&,且
存在 上的关系 是 的子集;若 不为空集,则 中存在唯
一的元素 ,$,%&,且存在 上的关系 为 的子集;
'$,#%$,%
(是一颗符合本定义的二叉树,称为根的左子树,是
一颗符合本定义的二叉树,称为根的右子树。
基本操作
)*+,,
初始条件:, 给出二叉树 + 的定义
操作结果:按 , 构造二叉树 +
-.
初始条件:二叉树 已经存在
操作结果:返回二叉树的总的结点数
-.
初始条件:二叉树 已经存在
操作结果:返回二叉树单分支的节点数
)/+
初始条件:二叉树 + 已经存在
操作结果:将二叉树 + 清为空树
01+
初始条件:二叉树 + 已经存在
操作结果:若 + 为空二叉树,则返回 23,否则返回 45+3
16+*
初始条件:二叉树 + 已经存在
操作结果:返回 + 的深度
+
初始条件:二叉树 + 已经存在, 是 + 中的某个结点
操作结果:若 是 的非根结点,则返回它的双亲,否则返回
空
7+
初始条件:二叉树 + 已经存在,8 是对结点操作的应用函数。
操作结果:先序遍历 +,对每个结点调用函数 7 一次且仅一次。
一旦 7 失败,则操作失败。
97+*
初始条件:二叉树 + 已经存在,8 是对结点操作的应用函数。
操作结果:中序遍历 +,对每个结点调用函数 7 一次且仅一次。
一旦 7 失败,则操作失败。
7*+
初始条件:二叉树 + 已经存在,8 是对结点操作的应用函数。
操作结果:后序遍历 +,对每个结点调用函数 7 一次且仅一次。
2

一旦 7 失败,则操作失败。
五、详细设计
扩展先序遍历:
:-/.$6%
:-/.$/6%
:-/.$;6%
1<.-
-6
.-=/-6/=-6/
>=
7)=
-6-6
-6';-6
<-6''??='>255
/
='>=0//-@<>
=A%'-6
)*=A%/-6/
)*=A%-6/
7B
<C'>255
1<DE(-DA%
BA%/-6/
BA%-6/
0
)*
1<D先序遍历FD
B
递归算法:
3
剩余10页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1