线索二叉树设计报告

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

河南城建学院

数据结构

课程设计说明书题目: 线索二叉树的应用

院系:计算机科学与工程系

专业班级: 0614082

学号: 061408227

学生姓名:李文龙

指导教师:张延红

2010年 06 月 25 日

1.需求分析 .................................................................................................................. - 3 -

1.1线索功能模块 ................................................................................................. - 3 -

1.2创建功能模块 ................................................................................................. - 3 -

1.3删除和添加功能模块....................................................................................... - 3 -

2.概要设计 .................................................................................................................. - 3 -

2.1功能设计 ........................................................................................................ - 3 - 3详细设计................................................................................................................... - 6 -

3.1详细代码分析 ................................................................................................. - 9 -

3.2创建功能模块 ............................................................................................... - 11 -

3.3调试情况分析 ............................................................................................... - 14 -

4.总结 ....................................................................................................................... - 15 -

4.1编程心得 ...................................................................................................... - 15 - 参考资料.................................................................................................................... - 16 -

1.需求分析

本程序是用VC++6.0软件,可以实现对二叉树的创建,遍历以及线索等功能的实现,同时实现了界面的操作功能,便于工作人员操作。

1.1线索功能模块

本程序的重点是对二叉树的线索化以及对二叉树删除节点和添加节点后的线索的进行。

1.2创建功能模块

在我们这次编写的这个程序中,可以通过:广义表构造法,先序和中序构造法,以及中序和后序构造法等三种供你选择,操作者可以通过不同的构建方式来构建所要查询的二叉树。

1.3删除和添加功能模块

在二叉树的基础上进行对二叉树的添加和删除节点。

2.概要设计

2.1功能设计

(1)treenode

二叉树的节点设计,通过这部分模块,指定了二叉树的各个结点位置,为实现二叉树里面的各个功能,实现了相互的连接。例如:通过这部分的功能实现,可以直接让双亲指向左右子数,同时,也可以让左右子树和双亲结点相互相连。实现他们之间的交互功能。

(2)PreOrderTraverse()

二叉树的前序排列运算函数,在这段功能实现上,依据二叉树的性质,实现其相应的功能,并能狗通过输入的前序排列,结合其他情况的排列,生成一个正确的二叉树。

(3)LevelOrderTraverse()

中序排列的运算函数,在这个模块里,我们定义了二叉树的中序排列的定义,以及中序排列的运算方法,在具体的功能实现时,可以结合其他的排序方式生成正确的二叉树。

(4)PostOrderTraverse()

后序二叉树的运算函数,在这个运算函数里,集成了函数的构造运算形式,以及,

在对二叉树进行排序的排列的运算方法。同时,我们还能够结合其他的排列模式,

构建合理的二叉树运算。

(5)InOrderTraverse()

遍历二叉树的运算函数,在这个函数模块里,我们主要是用C++语言编写了,

二叉树的生成情况,通过相应情况的输入,生成适当的二叉树。

(6)GetData()

获得函数的大小值,并输出。

(7)LeftChild()

左子树节点,在这个函数结构里,我们设定了节点的运算方式,同时通过相

应的函数结构实现了,他与双亲及右子树的关系。

(8)RightChild()

右子树函数,同左子树节点功能相同,通过内部结合的函数,联系双亲及右

子树。

(9)destroy()

通过相关的函数运算过程,实现删除的运算功能,在我门的本函数中,主要

是实现无用节点的删除功能

(10)

Bool InOrderThreading(TreeNode *head); //中序线索

void InThreading(TreeNode *p,TreeNode* &pre);

void Display1(TreeNode *p); //通过线索进行二叉树的遍历

bool PreOrderThreading(TreeNode *head); //前序线索

void PreThreading(TreeNode *p,TreeNode* &pre);

void Display2(TreeNode *p); //通过前序线索遍历

bool PostOrderThreading(TreeNode *head); //后序线索

void PostThreading(TreeNode *p,TreeNode * &pre);

void Display3(TreeNode *p); //通过后序线索遍历

void Destroy(); //消去线索

void Destory(TreeNode *p); //销毁函数

(11)

bool Insert(T data); //插入结点

bool Remove(T data);

相关文档
最新文档