"."代表空树,程序分别以先序、中序和后序的方式递归遍历二叉树,再以中序非递归的方式遍历二叉树,并以中序递归方式输出叶子结点并统计叶子结点的个数。最后将二叉树线索化并中序遍历线索二叉树。...
分类:
其他好文 时间:
2014-11-03 10:18:08
阅读次数:
215
二叉树递归遍历可谓是学过数据结构的同仁都能想一下就能写出来,但在应聘过程我们常常遇到的是写出一个二叉树非递归遍历函数,接着上篇文章写二叉树的非递归遍历,先难后易,一步一步的来.
先上代码:
#include "binarytree.h"
#include
#include
#ifndef RECU
#warning("RECU is not defined")
/**
*前序遍历...
分类:
其他好文 时间:
2014-11-02 18:18:36
阅读次数:
232
/* No recusive to realize the travle of tree */void NoPreOrder( BiTree root ){/*{{{*/ Stack S; BiTree P; P = root; S = CreateStack(); ...
分类:
其他好文 时间:
2014-10-31 15:26:23
阅读次数:
114
三种不同的遍历方式区别在于栈空间的释放时机和输出结点信息时机的不同:先序和中序遍历是在访问栈顶元素的右孩子(右子树)之前退栈,而后序遍历在访问右子树之后退栈;先序遍历是在某结点入栈时输出其信息,而中序和后序遍历是在该结点退栈时输出其信息。
无论是递归算法还是非递归算法,都遵循上述规则,二者可以一一对应。图示如下:...
分类:
编程语言 时间:
2014-10-29 17:16:11
阅读次数:
294
问题:
玛雅密码是一串由0、1、2组成的密码,这串数字中如果包含2012,就可以解开末日的大门。给定一串由0、1、2组成的字符串,只有相邻的数字可以交换,求通过最少多少次变换可以得到玛雅密码,并给出这串密码。
思路:
经过很久很久的尝试,放弃了一次性拼凑2012的想法,改用预处理得到所有数字范围中符合玛雅密码的部分,再递归遍历给定的数字串,得到该串所有可...
分类:
其他好文 时间:
2014-10-23 00:10:08
阅读次数:
244
算法导论:10.4-3
给定一个 n 结点的二叉树,写出一个 O(n) 时间的非递归过程,将该树每个结点的关键字输出。可以使用一个栈作为辅助数据结构。...
分类:
其他好文 时间:
2014-10-14 22:40:39
阅读次数:
157
统计一个目录的大小(比特数),最简单的办法是在控制台输入命令: du?-sb?目录地址 用C++实现这个功能,是通过递归遍历目录下的文件和子目录达到的。需要注意的是,因为Byte数过大,单用一个整型统计Byte的数量...
分类:
编程语言 时间:
2014-10-14 21:55:52
阅读次数:
253
BST的中序遍历是一个sorted-array,再构造回去成一个BST,先将中间的元素作为根节点,这个节点的左右分别是左子树和右子树。如此递归地进行即可。...
分类:
其他好文 时间:
2014-10-10 02:19:43
阅读次数:
173