遍历二叉树
二叉树是一种非线性的数据结构。所谓的遍历二叉树就是按某种顺序访问二叉树中的每个节点,要求每个节点被访问一次且仅一次。
遍历操作实际上是将非线性结构线性化过程,其结果为线性序列。
二叉树的操作
(1)先序遍历---结束的条件是二叉树是否为空 TLR
先访问根节点;
再先序访问左子树;
再先序访问右子树。
(2)中序遍历---结束的条件是二叉树是否为...
分类:
其他好文 时间:
2014-08-29 18:24:18
阅读次数:
154
二叉树的广度遍历想想还是比较简单的,利用队列存储当前结点的左儿子和右儿子用作未来的访问。
代码实现
/**
* 源码名称:TreeBFS.java
* 日期:2014-08-25
* 程序功能:二叉树广度遍历
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
import java.util.LinkedList;
import java.u...
分类:
其他好文 时间:
2014-08-25 11:53:44
阅读次数:
185
马上又要秋招了,赶紧复习下基础知识。这里复习下二叉树和图的深搜与广搜。从图的遍历说起,图的遍历方法有两种:深度优先遍历(Depth First Search), 广度优先遍历(Breadth First Search)。图搜索的经典应用走迷宫、N皇后、二叉树遍历等。遍历:定义按某种顺序访问“图”中所有的节点。...
分类:
其他好文 时间:
2014-08-24 12:58:32
阅读次数:
8475
二叉树的深度遍历用递归的话就没有什么好说的了。
代码实现
/**
* 源码名称:TreeIteratorRecursion.java
* 日期:2014-08-23
* 程序功能:二叉树深度遍历
* 版权:CopyRight@A2BGeek
* 作者:A2BGeek
*/
public class TreeIteratorRecursion {
class TreeN...
分类:
其他好文 时间:
2014-08-23 16:52:01
阅读次数:
159
二叉树的二叉树节点的描述publicclassBiTNode{chardata;BiTNodelc,rc;}下面我们分别用递归和非递归实现前、中、后序遍历,以及使用了两种方法来进行层次遍历二叉树,一种方法就是使用STL中的queue,另外一种方法就是定义了一个数组队列,分别使用了front和rear两个数组的下标来..
分类:
其他好文 时间:
2014-08-16 01:11:30
阅读次数:
203
Recover Binary Search Tree
Two elements of a binary search tree (BST) are swapped by mistake.
Recover the tree without changing its structure.
Note:
A solution using O(n)
space is pretty s...
分类:
其他好文 时间:
2014-08-15 19:39:39
阅读次数:
222
题目一:Populating
Next Right Pointers in Each Node
Given a binary tree
struct TreeLinkNode {
TreeLinkNode *left;
TreeLinkNode *right;
TreeLinkNode *next;
}
Popul...
分类:
其他好文 时间:
2014-08-12 09:03:43
阅读次数:
201
思路:先序的第一个元素和后序的最后一个元素是当前子树的根,然后遍历中序序列,找到左右子树的分界线,递归建左子树和右子树。
class Solution {
public:
/*由于是oj,这里假设给的序列是合法的,正常情况是需要判断不合法情况的 */
TreeNode *buildTree(vector &inorder, vector &postorder,int instar...
分类:
其他好文 时间:
2014-08-11 21:37:42
阅读次数:
504
给出借助栈数据结构,遍历二叉树的非递归方法。文中以中序遍历为例子,但前序遍历和后序遍历,只需要对循环中三个代码块做一些顺序上的调整,即可得到。
分类:
其他好文 时间:
2014-08-09 18:37:58
阅读次数:
276