二叉树层序遍历即从上往下、自左而右地访问每个节点,但按这样的顺序的话,相邻访问的两个节点间大多没有直接联系,不易访问,所以会显得比较麻烦,不过我们有队列这个好东西,建一个顺序表队列,里面按顺序存入每个节点的地址,之后在队列中按顺序访问就行了。关键是用队列到底能不能恰好地把每一个节点按从上往下、自左而...
分类:
其他好文 时间:
2015-10-22 23:44:34
阅读次数:
299
二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为树的定义本身就是递归定义,因此采用递归的方法去实现树的三种遍历不仅容易理解而且代码很简洁。而对于树的遍历若采用非递归的方法,就要采用栈去模拟实现。在三...
分类:
其他好文 时间:
2015-10-21 12:36:33
阅读次数:
148
void preOrder(BinTree *root) //递归前序遍历 { if(root!=NULL) { coutdatalchild); preOrder1(root->rchild); }}void inOrder1(BinTree ...
分类:
其他好文 时间:
2015-10-17 16:11:13
阅读次数:
120
原文:http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html 二叉树的非递归遍历 二叉树是一种非常重要的数据结构,很多其它数据结构都是基于二叉树的基础演变而来的。对于二叉树,有前序、中序以及后序三种遍历方法。因为...
分类:
其他好文 时间:
2015-10-13 13:51:53
阅读次数:
206
方法一算法思想:用后序遍历的方式遍历二叉树的每一个结点,在遍历到一个结点之前我们已经遍历了它的左右子树,只要在遍历每个结点的时候记录下它的高度,我们就可以一边遍历一边判断每个结点是不是平衡的。代码如下: 1 typedef struct BinaryTree 2 { 3 int data; ...
分类:
其他好文 时间:
2015-10-08 21:29:58
阅读次数:
261
二叉树结点的定义与先序(中左右)、中序(左中右)、后序(左右中)遍历,顺便写个最大深度,都是递归实现,之后再学习非递归的方法。package leetcode;class TreeNode{ TreeNode left; TreeNode right; int val; Tr...
分类:
其他好文 时间:
2015-10-07 17:30:30
阅读次数:
131
1 二叉树的递归遍历 二叉树在数据结构中乃是重中之重,其应用非常广泛,很多数据结构都是建立在二叉树的基础上,如红黑色,平衡树等。 二叉树的定义如下: 一个有穷的结点集合。 这个集合可以为空。 若不为空,则它是由根结点和称为其左子树TL和右子树TR的两个不相交的二叉树组成。 可...
分类:
其他好文 时间:
2015-10-07 12:11:19
阅读次数:
286
常见的前序、中序、后序都很常见,最近用到了按层遍历,记录一下:思路:用一个队列来作为辅助空间。依次存储头结点,左节点和右节点。每次循环输出节点的值,直到队列为空这样一来就利用了队列先进先出的性质实现了非递归按层遍历二叉树。具体实现:void levelOrderTraverse(const BiTr...
分类:
其他好文 时间:
2015-09-29 22:10:27
阅读次数:
234
一:知识点 数据结构: 1,单,双链表及循环链表 2,树的表示与存储,二叉树(概念,遍历)二叉树的 应用(二叉排序树,判定树,博弈树,解答树等) 3,文件操作(从文本文件中读入数据并输出到文本文 件中) 4,图(基本概念,存储结构,图的运算) 数学知识 ...
分类:
其他好文 时间:
2015-09-21 11:48:45
阅读次数:
286
节点:/**二叉树节点*/publicclassNode{ //数据项 publiclongdata; //数据项 publicStringsData; //左子节点 publicNodeleftChild; //右子节点 publicNoderightChild; /** *构造方法 *@paramdata */ publicNode(longdata,StringsData){ this.data=data; this.sData=sData; }..
分类:
编程语言 时间:
2015-09-21 01:46:48
阅读次数:
232