
二叉树基本操作实验报告——顺序存储与链式存储结构的实现
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本实验报告详细探讨了二叉树的基本操作在不同存储方式下的实现方法,包括数组和指针两种形式。通过对比分析,阐明了顺序存储与链式存储各自的优缺点及适用场景。
本项目要求使用顺序存储结构与二叉链表存储结构实现抽象数据类型二叉树的基本操作,并在DOS界面利用字符显示二叉树的形态。该项目包含完整的源程序及实验报告文档,其中详细记录了以下内容:
一、定义抽象数据类型的二叉树。
二、定义存储结构(包括顺序存储和二叉链表)及其各基本操作的具体实现方法。
三、测试方案与详细的测试函数说明。
四、展示所有操作的测试过程中二叉树的变化截图作为测试结果的一部分。
五、对二叉树各项基本操作的时间复杂度进行分析,结合不同的存储结构特点,并提出算法改进设想。
六、实验总结和体会。
项目中实现的基本操作包括:
- InitBiTree(&T):初始化二叉树
- DestroyBiTree(&T):销毁二叉树
- CreateBiTree(&T):创建二叉树
- ClearBiTree(T):清空二叉树中的所有结点,但不释放存储空间。
- BiTreeEmpty(T):判断是否为空树
- BiTreeDepth(T) :计算当前深度(层数)
- Root(T): 返回根节点的值
- Value(T,e) : 获取指定位置元素的值
- Assign(T,&e,value): 设置指定位置元素的新值
- Parent(T,e): 查找某结点的父亲结点
- LeftChild(T,e):返回该结点左子树中的最小关键字结点。
- RightChild(T,e) :返回该结点右子树中最大关键字的节点。
- LeftSibling(T,e) : 返回当前结点兄弟
- RightSibling(T,e): 查找某元素的右侧相邻兄弟
- InsertChild(T,p,LR,c):在二叉树T中的位置p插入一个新子树c,LR指定是左孩子还是右孩子。
- DeleteChild(T,p,LR): 删除以节点P为根结点的左右孩子的某个分支。
- PreOrderTraverse(T,Visit()) : 前序遍历
- InOrderTraverse(T,Visit()): 中序遍历
- PostOrderTraverse(T,Visit()): 后序遍历
- LevelOrderTraverse(T,Visit()): 层次顺序(广度优先) 遍历
下载的文件包括:
Base.h //全局常量、公共变量和函数定义
BiTree.h//二叉链表形式的二叉树实现
BiTree_Main.cpp//测试程序源码,用于验证上述操作功能是否正确。
SqBiTree.h //顺序存储结构下的二叉树实现
SqBiTree_Main.cpp //测试程序源代码
实验报告文档为:
抽象数据类型实现-二叉树-实验报告.doc
全部评论 (0)


