`
Poechant
  • 浏览: 229498 次
博客专栏
Bebe66e7-3a30-3fc9-aeea-cfa3b474b591
Nginx高性能Web服务...
浏览量:24321
5738817b-23a1-3a32-86de-632d7da73b1e
Cumulus实时媒体服务...
浏览量:22103
社区版块
存档分类
最新评论

线索二叉树的线索化算法

 
阅读更多

在严蔚敏的《数据结构》一书中,所使用的代码存在一些小问题。原版代码就不附上了,主要问题是:

1.InThreading函数的参数,应该携带pre,这应该是比较严重的问题。如果没有携带pre,则对pre的修改只是在调用的函数中的局部变量的值的修改,没有影响到原来的pre的值。

2.在条件语句中,将命中概率高的语句放在前面,会提高代码效率。但严的算法中在InOrderThreading算法中,将T为NULL时放在了前面。

3.InOrderThreading中,只有T为NULL时,执行Thrt->rchild = Thrt才有意义。而在T不为NULL时,要执行Thrt->rchild = pre,即使开始执行了Thrt->rchild = Thrt,也会被覆盖掉,所以把Thrt->rchild = Thrt句移到了else分句中。

欢迎讨论、批评与指正!

ALex ZhonG

分享到:
评论

相关推荐

    二叉树的线索化(中序线索二叉树)

    二叉树的线索化是一种将非线性结构转化为线性结构的技术,主要目的是为了提高二叉树的遍历效率,特别是对于中序遍历。...总的来说,理解和实现线索二叉树是深入理解数据结构和算法的重要一步,对提升编程技能大有裨益。

    线索二叉树(数据结构课设)

    线索二叉树是一种特殊形式的二叉树,...在数据结构的学习中,理解和掌握线索二叉树的构造与操作是提升算法能力的关键步骤。通过实际编写和调试代码,学生可以更好地领会这种数据结构的工作原理及其在实际问题中的应用。

    线索二叉树 算法 建立 输出等。。。

    1. 初始化:在构建线索二叉树之前,首先需要对原始二叉树进行遍历,并为每个节点分配两个线索指针,初始化为空。 2. 中序遍历构建:从根节点开始,按照中序遍历的顺序访问每个节点。在遍历过程中,对于每个节点,...

    线索二叉树算法

    根据给定的信息,我们可以深入探讨线索二叉树的相关概念、实现方法及其应用场景。 ### 线索二叉树概述 线索二叉树是一种特殊的二叉树结构,它通过对空指针进行利用,来提高二叉树遍历的效率。在二叉树中,对于某个...

    c++线索二叉树源代码

    在构建线索二叉树时,通常会先建立一个普通的二叉查找树,然后进行线索化操作。线索化过程包括前序线索化和后序线索化,分别用于处理中序、前序和后序遍历。 对于插入操作,我们需要找到插入位置,并更新相关线索。...

    二叉树的中序线索化和遍历

    在main函数中,我们首先创建一个二叉树,然后使用中序线索化算法将其转换成线索二叉树。最后,我们使用中序遍历算法来遍历线索二叉树,并输出每个节点的数据元素。 结论 ---------- 在本文中,我们讨论了二叉树的...

    线索二叉树的插入,删除

    线索二叉树是一种特殊的二叉树数据结构,它在二叉链表的基础上增加了线索,用于在非递归情况下实现二叉树的前序、中序和后序遍历。...在实际编程中,根据具体需求和性能要求,可以选择合适的算法来操作线索二叉树。

    数据结构 线索二叉树 严蔚敏

    书中不仅介绍了线索二叉树的基本概念,还详细描述了线索二叉树的构建过程、线索化方法以及遍历算法等。严教授采用深入浅出的讲解方式,并结合具体实例,使得读者即使没有扎实的计算机基础也能够逐步理解并掌握线索...

    中序线索化二叉树及中序遍历

    在实际应用中,为了在非递归情况下高效地进行中序遍历,引入了线索二叉树的概念,特别是中序线索化二叉树。 中序线索化二叉树是在二叉链表的基础上进行修改,使得在任何时刻,通过线索可以确定某个节点是前驱还是...

    中序线索化二叉树的非递归算法.doc

    中序线索化二叉树的非递归算法 中序线索化二叉树的非递归算法是指对二叉树进行中序遍历,并将其转换为线索化二叉树的算法。这里,我们将详细介绍该算法的实现过程和相关知识点。 算法思想 中序线索化二叉树的非...

    线索二叉树

    总结,线索二叉树是二叉树数据结构的一个重要扩展,通过线索化,可以有效地支持非递归遍历,降低对系统栈空间的需求,提高算法效率。在实际编程实现中,需要注意线索的维护和更新,以保持线索二叉树的正确性。

    数据结构课程设计线索二叉树

    3. 设计前序、中序、后序线索二叉树遍历算法。 4. 编写测试用例,验证各种操作的正确性。 线索二叉树的构建: 构建线索二叉树分为两个阶段:普通二叉树到线索二叉树的转换和线索化。在转换过程中,我们需要遍历...

    线索二叉树运算的课程设计

    线索二叉树是一种特殊的二叉树数据结构,它通过在二叉链表的空指针域中存储指向结点在特定遍历顺序下的前驱和后继结点的指针,从而方便快速的遍历。在本课程设计中,重点在于实现中序线索二叉树的建立、插入、删除...

    数据结构 线索二叉树

    这样,通过线索二叉树,我们可以在不改变原有二叉树结构的前提下,快速定位到节点的前驱和后继,从而实现非递归的遍历算法。 1. **线索二叉树的构建**: - 在构造线索二叉树时,首先需要确定遍历的顺序,如中序...

    二叉树的建立遍历以及线索化二叉树

    二叉树的线索化是指将二叉树转换为线索二叉树。线索二叉树是一种特殊的二叉树,它的每个结点都有左线索和右线索。我们使用函数 `INTHREAD` 来将二叉树转换为线索二叉树。 ```c void INTHREAD(bithptr *p) { if(p!...

    数据结构课程设计 线索二叉树

    - **线索化**:将普通二叉树转换为线索二叉树,即在遍历过程中将空指针域转化为指向前驱或后继节点的线索。 ### 2. 概要设计 - **数据结构**:二叉树由n个节点组成,分为根节点、左子树和右子树。线索二叉树是在...

    二叉树的线索化实现

    线索化的过程是将非空二叉树转换为线索二叉树,以便在不使用栈或队列的情况下,能够前后遍历节点。在二叉树的每个节点中,通常包含两个指针:一个指向其左子节点,另一个指向其右子节点。线索二叉树会在这些指针可能...

    线索二叉树的数据结构课程设计

    线索二叉树是一种在二叉树中添加线索(thread)以方便进行遍历的数据结构,主要应用于不支持随机访问的存储系统中。这种数据结构在实际应用中,尤其是在需要高效遍历二叉树(如前序、中序、后序遍历)时,能提供便利...

Global site tag (gtag.js) - Google Analytics