线索二叉树课程设计.docVIP

  • 69
  • 0
  • 约1.76万字
  • 约 29页
  • 2016-09-25 发布于安徽
  • 举报
信息科学与技术学院 《数据结构》课程设计报告 题目名称: 线索二叉树的计算 学生姓名: 刘 少 博 学 号: ********** 专业班级: 计算机科学与技术 指导教师: 高 攀 2014年 1月 8 1、设计的目的与要求 此程序需要完成如下要求:建立线索二叉树,并实现线索二叉树的插入、删除和恢复线索的实现。 实现本程序需要解决以下几个问题: 如何建立线索二叉树。 如何实现线索二叉树的插入。 如何实现线索二叉树的删除。 如何实现线索二叉树恢复线索的实现。 此题目是线索二叉树的一系列操作问题。首先就要明白线索二叉树是什么,利用二叉链表的空指 针域将空的左孩子指针域改为指向其前驱,空的右孩子指针域改为指向其后继,这种改变指向的指针称为线索,加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树。 在这个问题中,要解决的任务是:实现线索树建立、插入、删除、恢复线索的实现 目 录 摘要…………………………………………………………………………………………4 引言……………………………………………………………………………………5 设计任务与目的 …………………………………………………………………… 5 设计方案与实施………………………………………………………………………5 1、总体设计………………………………………………………………………… 5 详细设计………………………………………………………………………… 7 3、程序清单………………………………………………………………………… 13 4、程序调试与体会……………………………………………………………………24 5、运行结果(截图)………………………………………………………………… 24 四、结论……………………………………………………………………………………27 五、致谢……………………………………………………………………………………27 六、参考文献………………………………………………………………………………27 摘 要 随着人们生活水平的提高,计算机发展异常迅速。如今,计算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用实现线索树建立、插入、删除、恢复线索。 《数据结构》课程设计 --线索二叉树的计算 一、引 言 树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。结构树在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象表示。树在计算机领域中也得到广泛应用,如在编译源程序时,可用树表示源程序的语法结构。又如在数据系统库中,树型结构也是信息的重要组织形式之一。一切具有层次关系的问题都可用树来描述。 二、设计目的与任务 通过本课程设计教学所要求达到的目的是:建立线索二叉树,并实现线索二叉树的插入、删除和恢复线索的实现。 三、设计方案 1、总体设计 首先建立二叉树,然后对二叉树进行线索化。 线索链表的结点结构 ???  线索链表中的结点结构为: 图(1) 线索链表中的结点结构 中序线索二叉树的图示 ? 图(2) 中序线索二叉树 建立二叉树(即指在内存中建立二叉树的存储结构),建立一个二叉链表,需按某种顺序一次输入二叉树中的结点,且输入顺序必须隐含结点间的逻辑结构信息。对于一般的二叉树,需添加虚结点,使其成为完全二叉树。 关键在于如何将新结点作为左孩子和右孩子连接到它的父结点上。可以设置一个队列,该队列是一个指针类型的数组,保存已输入的结点地址。 (1)令队头指针front指向其孩子结点当前输入的建立链接的父结点,队尾指针 rear指向当前输入的结点,初始:front=1,rear=0; (2)若rear为偶数,则该结点为父结点的左孩子;若rear为奇数,则该结点的 右孩子;若父结点和孩子结点为虚结点,则无需链接。 (3)若父结点与其两个孩子结点的链接完毕,则令front=front+1,使front指向下一个等待链接的父结点。 二叉树的中序索化算法与中序历算法类似。只需要将遍历算法中访问结点的操作具体化为建立正在访问的结点与其非空中前趋结点间线索。该算法应附设一个指针pre始终指向刚刚访问过的结点(pre的初值应为NULL),而指针p指示当前正在访问的结点。结点*

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档