完全二叉树操作演示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

安徽省巢湖学院计算机与信息工程学院

课程设计报告

课程名称《数据结构》

课题名称完全二叉树操作演示

专业班级计算机科学与技术专升本1班

学号********、********、********

姓名李鹏王帅李泳波

联系方式

指导教师严小燕

完成日期: 2014年12月27 日

目录

1 数据结构课程设计任务书 (1)

1.1题目 (1)

1.2目的 (1)

1.3要求 (1)

2 总体设计 (1)

2.1功能模块设计 (1)

2.2所有功能模块流程图 (1)

3 详细设计 (2)

3.1程序中所采用的数据结构及存储结构的说明 (2)

3.2算法设计思想 (3)

3.3主要的功能函数 (3)

4 调试与测试 (3)

4.1调试方法与步骤 (4)

4.2测试结果分析与讨论 (4)

4.3测试过程中遇到的主要问题及采取的解决措施 (5)

5 时间复杂度分析 (6)

6 程序清单 (6)

7 总结 (12)

参考文献 (13)

1 数据结构课程设计任务书

1.1题目

完全二叉树操作演示

1.2目的

(1)掌握二叉树的概念和性质。

(2)掌握完全二叉树存储结构。

(3)掌握完全二叉树的基本操作。

1.3 要求

(1)创建完全二叉树(用字母表示节点)(用顺序方式存储)。

(2)求二叉树的深度和叶子结点数。

(3)实现二叉树的前序、中序、后序和层次遍历。

(4)查找给定结点的双亲、祖先和左右孩子节点。

2 总体设计

2.1 功能模块设计

根据课程设计题目的功能要求,各个功能模块的组成框图如图1:

图 1 功能组成框图

2.2 所有功能模块流程图

设计好功能模块后,各个模块的关系如下图2:

图 2 流程图

3 详细设计

3.1程序中所采用的数据结构及存储结构的说明

(1)整个程序采用结构体与顺序表相结合的编程方法一共完成了7个功能。在你输入错误时有报错消息,这样使整个程序运行起来更加完整。程序中有若干个子函数被主函数调用执行。结构体定义如下:

#define MAX 100 //定义100个节点

typedef struct

{

char dat; //节点信息

}node;

typedef struct Tree //节点组成树

{

int length;

node *r; //指向根节点

}Tree;

3.2 算法设计思想

完全二叉树具有以下几个性质,由此可设计出相应算法。 性质1 完全二叉树约定编号从根节点起,自上而下,自左自由。 由此设计出顺序存储结构且进行层次遍历时,只需输出顺序表中存储的元素即可。

性质2 具有n 个结点的完全二叉树的深度为 。 由此设计出深度计算函数。

性质3 完全二叉树第i 层上的结点数目最多为2i-1(i≥1)。

由此设计出每层节点个数函数,在显示完全二叉树时可以找到其最左边的孩子节点。

性质4 在完全二叉树中,若某个结点没有左孩子,则它一定没有右孩子,即该结点必是叶结点且叶子节点个数为(n+1)/2。

由此设计出叶子节点函数。

性质5 在完全二叉树中,若根节点为i ,则左孩子节点为2i,右孩子节点为2i+1。

由此采用递归思想,可以对完全二叉树进行前序、中序、后序遍历和给定节点找其双亲及孩子。

3.3主要的功能函数

CreatTree(Tree &t) //创建完全二叉树 LevCount(int n) //统计每层最多节点个数 OutputTree(Tree &t) //显示完全二叉树 Depth(Tree &t) //求树深 Leaf(Tree &t) //叶子节点

PreOrder(Tree &t,int r) //先序遍历 InOrder(Tree &t,int r) //中序遍历 PostOrder(Tree &t,int r) //后序遍历 LeOrder(Tree &t) //层次遍历

Search(Tree &t,char q) //查找给定结点的双亲、左右孩子 完善以上函数,就可以设计出完全二叉树的操作了。

4 调试与测试

1log 2 n

4.1调试方法与步骤

第一步:建立完全二叉树,输入节点个数和节点。

第二步:选择要操作的对象,比如显示完全二叉树,按下电脑键盘1。查找双亲及孩子功能函数在操作时需要输入信息,按照相应提示输入相应信息即可运行,输入不对时,程序会有报错提示信息。

4.2测试结果分析与讨论

假定完全二叉树节点数为9个,节点信息为a、b、c、d、e、f、g、h、i。操作结果如下图所示:

(1)操作界面

图3 操作界面

(2)创建完全二叉树

图4 创建完全二叉树

(3)显示完全二叉树

图5 显示完全二叉树(4)完全二叉树深度

图6 完全二叉树深度(5)完全二叉树层次遍历

图7 完全二叉树层次遍历(6)完全二叉树前序、中序、后序

图8 前序、中序、后序遍历(7)查找给定节点双亲及孩子

图9 查找给定节点双亲及孩子(8)完全二叉树叶子节点数

图10 节点数

4.3 测试过程中遇到的主要问题及采取的解决措施

相关文档
最新文档