二叉树
QiaoRuoZhuo
这个作者很懒,什么都没留下…
展开
-
二叉树非递归遍历算法详解
二叉树的递归算法很容易实现,而且简明易懂,但非递归算法就不是那么好理解了。本文将结合代码详细解释遍历二叉树的三种不同方式。原创 2014-09-20 21:47:17 · 1348 阅读 · 1 评论 -
根据先中序序列或后中序序列确定二叉树
根据后中序序列生成二叉树:从后序序列中找到二叉树(或者子树)的根结点,然后在中序序列找到该根结点,根结点将中序序列分成左右两部分,左边为左子树,右边为右子树。根据中序序列确定左子树的长度,确定左子树中最右下根结点在后序序列中的位置,从而可以确定左右子树在后中序序列中的范围,然后递归的生成左右子树。原创 2014-10-03 11:36:52 · 2849 阅读 · 0 评论 -
二叉排序树基本操作详解
二叉排序树基本操作详解巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo)所谓二叉排序树,指的是一棵空二叉树,或者是一棵具有如下特性的非空二叉树:1。若它的左子树非空,则左子树上所有结点的值均小于根结点的值;2。若它的右子树非空,则右子树上所有结点的值均大于根结点的值;3。左,右子树本身又各是一棵二叉排序树。 二叉排序原创 2014-10-04 17:56:14 · 2726 阅读 · 1 评论 -
算法进化历程之“根据二叉树的先序和中序序列输出后序序列”
通过对一个作业“根据二叉树的先序和中序序列输出后序序列”的思考,详细分析了不断改进算法的过程。其中通过移动指针确定被处理序列段边界的方法确实让人感觉到算法之美。原创 2014-10-08 22:50:54 · 1772 阅读 · 1 评论 -
线索二叉树小结
/*Name: 线索二叉树Copyright:Author: 巧若拙 Date: 30-09-14 22:13Description: 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列。这实际上是对一个非线性结构进行线性化操作,使每个结点(除第一个和最后一个外)在这些线性序列中有且仅有一个直接前驱和直接后继。但是原创 2014-10-01 00:07:28 · 760 阅读 · 0 评论 -
线索二叉树基本操作详解
线索二叉树基本操作详解巧若拙(欢迎转载,但请注明出处:http://blog.csdn.net/qiaoruozhuo) 遍历二叉树是以一定规则将二叉树中结点排列成一个线性序列,得到二叉树中结点的先序,中序或后序序列。这实际上是对一个非线性结构进行线性化操作,使每个结点(除第一个和最后一个外)在这些线性序列中有且仅有一个直接前驱和直接后继。但是,当以二叉链表作为存储结构时,只能原创 2014-10-02 09:38:01 · 2875 阅读 · 0 评论 -
汉诺塔问题非递归算法集锦
汉诺塔问题博大精深,我稍微搜集整理了一下,就得到如此多方法,还有好些方法一时不能理解,没有贴出来,请广大网友共同探讨,分享更多更好的方法。原创 2014-11-30 16:13:37 · 6303 阅读 · 4 评论 -
史上最简明易懂非递归遍历二叉树算法
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。 无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:原创 2014-10-29 14:59:02 · 5700 阅读 · 0 评论