数据结构课程设计---线索二叉树的生成及其遍历
《数据结构课程设计---线索二叉树的生成及其遍历》由会员分享,可在线阅读,更多相关《数据结构课程设计---线索二叉树的生成及其遍历(12页珍藏版)》请在毕设资料网上搜索。
1、 数据结构课程设计数据结构课程设计 题题 目目: : 线索二叉树的生成及其遍历线索二叉树的生成及其遍历 学学 院:院: 班班 级:级: 学学 生生 姓姓 名:名: 学学 生生 学学 号:号: 指指 导导 教教 师:师: 2012 2012 年年 1212 月月 5 5 日日 课程设计任务书课程设计任务书 姓名 班级 学号 设计题目 线索二叉树的生成及其遍历 理论要点 二叉树的遍历本质上是将一个复杂的非线性结构转换为线性结构, 使 每个结点都有了唯一前驱和后继(第一个结点无前驱, 最后一个结点无后 继) 。对于二叉树的一个结点,查找其左右子女是方便的,其前驱后继只 有在遍历中得到。为了容易找到前
2、驱和后继,有两种方法。一是在结点结 构中增加向前和向后的指针 fwd 和 bkd,这种方法增加了存储开销,不可 取;二是利用二叉树的空链指针。 建立线索二叉树,或者说对二叉树线索化,实质上就是遍历 一颗二叉树。在遍历过程中,访问结点的操作是检查当前的左, 右指针域是否为空,将它们改为指向前驱结点或后续结点的线 索。为实现这一过程,设指针 pre 始终指向刚刚访问的结点,即 若指针 p 指向当前结点,则 pre 指向它的前驱,以便设线索。 另外,在对一颗二叉树加线索时,必须首先申请一个头结点, 建立头结点与二叉树的根结点的指向关系,对二叉树线索化后, 还需建立最后一个结点与头结点之间的线索。 中
3、序线索二叉树:若结点的 ltag=1,lchild 指向其前驱;否则,该结点 的前驱是以该结点为根的左子树上按中序遍历的最后一个结点。若 rtag=1,rchild 指向其后继;否则,该结点的后驱是以该结点为根的右子 树上按中序遍历的第一个结点。 设计目标 以二叉链表作为存储结构时,只能找到结点的左、右孩子的 信息,而得不到结点的前驱与后继信息,为了使这种信息只有在 遍历的动态过程中才能得到。增设两个指针分别指示其前驱和后 继,但会使得结构的存储密度降低;并且利用结点的空链域存放 (线索链表),方便。同时为了记下遍历过程中访问结点的先后 关系,附设一个指针 pre 始终指向刚刚访问过的结点,若
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 线索 二叉 生成 及其 遍历
