~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
写在前面:
最近准备找工作,捡起原来学习过的各种知识,加上一些自己的理解,梳理一下流程,巩固自己的认识,一步两步,一步两步。。。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~...
分类:
其他好文 时间:
2015-06-26 09:24:28
阅读次数:
189
转载出处 http://www.cnblogs.com/AnnieKim/archive/2013/06/15/MorrisTraversal.html博主很认真,这里转载一下以防丢失链接本文主要解决一个问题,如何实现二叉树的前中后序遍历,有两个要求:1. O(1)空间复杂度,即只能使用常数空间;2...
分类:
其他好文 时间:
2015-04-28 07:03:17
阅读次数:
148
节点深度:从根到节点的路径长度,d(root)=0节点高度:从节点到树叶的最长路径的长,h(leaf)=0树高为根高,树的深度=树的高度树的遍历:递归的前、中、后序还是蛮简单的: 1 //树的遍历 2 void preorder_recursive(PtrToBiNode T){ //二叉树递归.....
分类:
其他好文 时间:
2015-02-20 17:24:46
阅读次数:
235
红黑树是建立在二叉查找树的基础之上的,关于二叉查找树可以参看【算法导论】二叉搜索树的插入和删除和【算法导论】二叉树的前中后序非递归遍历实现。对于高度为h的二叉查找树而言,它的SEARCH、INSERT、DELETE、MINIMUM、MAXIMUM等操作的时间复杂度均为O(h)。所以在二叉查找树的高度较高时,上述操作会比较费时,而红黑树就可以解决这种问题。...
分类:
编程语言 时间:
2015-01-14 12:49:51
阅读次数:
1480
二叉树的遍历是二叉树中最最基础的部分。这里整理二叉树不用递归实现三种顺序遍历的方式。不用递归的话,一般需要栈来完成。当然线索二叉树(不需要栈或递归)也可以完成中序遍历,这种方式在这篇文章中已经讨论过。这里着重讨论使用栈的实现方式。中序遍历(1) 双while,第二个内层while是为了不断压入lef...
分类:
其他好文 时间:
2014-12-08 02:03:20
阅读次数:
233
二叉树的前序建立递归算法以及前中后序遍历的递归算法已经是人尽皆知了,递归算法也确实为代码的编写带来了很大的方便。然而,有时我们也确实需要它们的非递归算法。将递归算法转化为非递归算法可以帮助我们深入了解函数的调用与栈的原理。这里总结一下二叉树的这些重要的非递归算法。...
分类:
编程语言 时间:
2014-12-07 12:39:23
阅读次数:
210
对于任一结点,可以按某种次序执行三个操作:
访问结点本身(N)遍历该结点的左子树(L)遍历该结点的右子树(R)
用来表示顺序,即,前序NLR/中序LNR/后序LRN.
下面我们用namedtuple来表达树,而通杀的遍历函数带一个order参数,只要我们把指定顺序传进去即可实现对应的遍历.
#coding=utf-8
'''
1
/ \...
分类:
编程语言 时间:
2014-10-29 17:00:22
阅读次数:
238
转至:http://blog.csdn.net/alex44667416/article/details/4723991package tree;import java.util.Stack;// 二叉树节点 class BTNode { private char key; privat...
分类:
编程语言 时间:
2014-10-12 19:32:48
阅读次数:
255
数据结构学的递归了,深入了解后写一个三序非递归的版本。//测试数据:abd##eg##h##c#f###include #include typedef char ElemType;typedef struct Node{ ElemType elem; struct Node *lchi...
分类:
其他好文 时间:
2014-10-09 22:32:07
阅读次数:
265