华中科技大学计算机学院数据结构实验报告
#define FALSE 0 #define OK 1 #define ERROR 0 #define OVERFLOW -2 (2)类型表达式
typedef int status;
typedef char TElemType; typedef BiTree QElemType; (3)系统常量定义
#define MAXLENG 10 #define MAXSIZE 2 #define QMAXSIZE 5 2.3.3 演示系统操作
1.系统一开始会显示功能菜单并提示用户输入选择。
图2-2 演示系统操作图1
2.输入序号0~20,会执行序号所对应的操作。
24
华中科技大学计算机学院数据结构实验报告
图2-3 演示系统操作图2
3.输入序号0,演示系统结束并退出。
图2-3 演示系统操作图3
2.3.4 测试计划 测试功能及序号 1.InitBiTree 输入函数的参数 无 预计输出 二叉树创建成功 此时二叉树的状态 二叉树根结点指针置为空,未分配具体的存储空间 25
华中科技大学计算机学院数据结构实验报告
2.DestroyBiTree 3.CreateBiTree 无 二叉树销毁失败 依次输入关键字及其对应值: A1 B9 D7 二叉树创建成功 ##E0H1##I2##C9F6##G2#J0## 无 无 无 无 输入关键字为D 输入关键字E 输入关键字为E的结点的值改为9 输入查找关键字为I的结点 二叉树清空成功 二叉树不为空 4.ClearBiTree 5.BiTreeEmpty 6.BiTreeDepth 7.Root 8.Value 9.Assign 10.Parent 二叉树头指针置为空,对应的存储空间被释放 按照输入关键字的先序序列创建二叉树,每个结点赋值 二叉树根结点保留,但其左右指针域置为空 同上3 二叉树的深度为4 同上3 二叉树的根结点关 键字为A 同上3 输出关键字为D的 结点值为7 同上3 输出关键字为E的 结点的值已改为9 同上3 同上3 同上3 同上3 同上3 同上3 同上3 同上3 输出关键字为I的结点的双亲结点为E 输出关键字为E的11.LeftChild(测试1) 输入查找关键字为E的结点 结点的左孩子为H 输出关键字为F的12.LeftChild(测试2) 输入查找关键字为F的结点 左孩子不存在,查找失败 输出关键字为B的13.RightChild(测试输入查找关键字为B的结点 结点右孩子为E 1) 输出关键字为F的14.RightChild(测试输入查找关键字为F的结点 右孩子不存在,操2) 作失败 输出关键字为G的15.LeftSibling(测试输入查找关键字为G的结点 结点左孩子为F 1) 输出关键字为B的15.LeftSibling(测试输入查找关键字为B的结点 结点左孩子不存2) 在,操作失败 26
华中科技大学计算机学院数据结构实验报告
16.InsertChild 在原二叉树的基础上,将新生成二叉树作为关键字为J的结点的左子树,J的左子树作为新生成二叉树的右子树 输入查找关键字为E的结点,输出二叉树删除成在上一基础上,17.DeleteChild 输入LR值为1 功 将原二叉树的E结点的右子树删除 输出先序遍历序 18.PreOrderTraverse 无 列:ABDEHICFGJ 同上3 19.InOrderTraverse 无 输出中序遍历序 列:DBHEIAFCGJ 同上3 输出后续遍历序 列:DHIEBFJGCA 同上3 输出层序遍历序 列:ABCDEFGHIJ 同上3 表2-1 测试计划 输入LR值为0,输入查找关 键字为J,新生成右子树为空输出二叉树插入成的二叉树输入:M1N2#K3### 功 (字母后为该关键字结点的值) 20.PostOrderTraverse 无 21.LevelTraverse 无
图2-4 按以上测试用例生成的原始二叉树
27
华中科技大学计算机学院数据结构实验报告
2.3.5 测试
1.执行功能1.InitBiTree,测试结果如图2-5所示。
图2-5 初始化二叉树测试
2.执行功能3,创建二叉树,测试结果如图2-6所示。
图2-6 二叉树创建
3.在上一步的基础上对二叉树的结构进行验证,根据其前序遍历、中序遍历、后续遍历的结果是否与预期一致判断结构是否正确。执行功能17,先序遍历二叉树,并执行PRINT操作,测试结果如图2-7所示。
28