线索二叉树地应用

线索二叉树地应用

ID:40001242

大小:329.03 KB

页数:33页

时间:2019-07-17

线索二叉树地应用_第1页
线索二叉树地应用_第2页
线索二叉树地应用_第3页
线索二叉树地应用_第4页
线索二叉树地应用_第5页
资源描述:

《线索二叉树地应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档课程设计说明书(数据结构课程设计)专业:网络工程课程名称:数据结构课程设计班级:网络B11-1设计题目:线索二叉树的应用设计时间:2013-2-25至2013-3-8评语:_______________________________________________________________________________________________________________________________________________________________________________________________

2、______评阅成绩:____评阅教师:__一、问题描述与需求分析1、问题描述本实验的问题是建立一个线索二叉树,并实现线索二叉树的文案大全实用文档插入、删除、恢复线索等功能。2、功能需求分析本程序要实现的功能是:1.线索二叉树的建立。2.线索二叉树的插入。3.线索二叉树的删除。4.线索二叉树的恢复。想要完成上面的功能,我们首先是要知道上面是线索二叉树。我们可以从数据结构的书上找到答案,利用二叉链表的空指针域将空的左孩子指针域改为指向其前驱,空的右孩子指针域改为指向其后继。这种改变指向的指针称为线索,加上了线索的二叉链表称为线索链表。N个结点的二叉链表中含有

3、n+1个空指针域。利用二叉链表中的空指针域,存放指向结点的在某种遍历次序下的前驱和后继结点的指针,这种加上了线索的二叉链表称为线索链表。相应的二叉树称为线线索二叉树。根据线索二叉树性质的不同,线索二叉树可以分为前序线索二叉树,中序线索二叉树和后续线索二叉树三种,此次课程设计中使用的是中序线索二叉树。二、概要设计1、总体设计思路首先就是要建立一个二叉树,然后再对二叉树进行线索化。线索链表中的结点结构为:文案大全实用文档其中:线索二叉树及其存储结构如文案大全实用文档在线索树上进行遍历,只需先找到序列中的第一个结点,然后依次找结点后继为空时而止。以上图为例子说明

4、在线索树中查找结点的后继。树中所有叶子的结点是线索,则右链域直接指示结点的后继,如结点b的后继为结点*。树中所有非终端结点的右链均为指针,则无法由此得到后继的信息。然而根据中序遍历的规律可知,结点的后继应是遍历其右子树时访问的第一个结点,即右子树最左下的结点。列入在找结点*的后继时,首先沿右指针找到其右子树的根结点“—”,然后顺其左指针往下直至其左标志为1的结点,即为结点*的后继,在图中是结点c。反之,在中序结点中找结点前驱的规律是:若其左标志为“1”,则左链为线索,指示其前驱,否则遍历左子树时最后访问的一个结点(左子树最右下的结点)为其前驱。开始定义二叉

5、树建立二叉树选择菜单输入i(1--5)NNNNI=3I=2I=1I=5I=4输出线索二叉树二叉树的线索化中序输出二叉树YYYYY删除结点并线索haunted插入结点并线索化文案大全实用文档结束程序流程图2、模块简介本程序有五个模块功能。每个模块功能均实现特定的功能。1.二叉树的建立:中序输入二叉树,为程序提供数据,输入的时候空域用@表示。2.进行二叉树的线索化:按中序遍历顺序将二叉树线索化,只需要在遍历的过程中将二叉树的每个结点的空的左右孩子的指针域分别修改为指向其前驱和后继,若其左子树为空,则将其左孩子域线索化,使其左孩子指针lchild指向其后继,并且

6、ltag置1.3插入操作:输入要插入的结点信息,然后再查找要插入结点的位置,插入新结点。4删除操作,确定要删除的结点,查找出要删除的结点,找到之后会显示ltag和rtag信息。5输出线索二叉树,输出的线索二叉树为经过处理的二叉树。三、详细设计1、数据结构设计程序采用线索链表做存储结构。程序中有二叉树的建立,插入,删除,恢复线索,这些操作都是基于线索链表作的。2、算法分析与实现二叉树的建立:文案大全实用文档建立一个二叉树,需要按照某种顺序依次输入二叉树中的结点,且该输入顺序必须隐含结点间的逻辑结构信息。这种建立的方法,按全二叉树的层次顺序,一次输入结点信息建

7、立二叉链表的过程。以@表示空结点,以#表示输入结束的标志,。一次输入结点信息,若其不是虚结点,则建立一个新结点。若新结点是第一个结点,则令其为跟结点,否则将新结点作为孩子链接到它的父亲结点上。在函数中设置一个队列,该队列是一个指针类型的数组,保存以输入的结点的地址。使队列指针front指向当前与孩子建立链接的父亲结点,,队尾指针rear指向当前输入的结点。若rear为偶数,则该结点为父结点的左孩子,若rear为奇数,则为父结点的右孩子。若父结点或孩子结点为虚结点,则无需链接,若父结点与其两个孩子结点链接完毕,则使front指向下一个等待链接的父结点。算法实

8、现:Bithptr*Q[maxsize];//建队为指针类型Bit

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。