树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,当然有些题目非递归解法也应该掌握,如非递归遍历节点等等。本文努力对二叉树相关题目做一个较全的整理总结,希望对找工作的同学有所帮助。...
分类:
其他好文 时间:
2016-06-12 03:05:53
阅读次数:
171
解析:由二叉树的前序和中序序列,先构建出二叉树,然后再进行后续递归遍历 注意递归停止的条件和相关的用法 源代码如下: ...
分类:
其他好文 时间:
2016-06-11 14:28:10
阅读次数:
278
记得有次被别人问起二叉树的先序遍历,竟然不清楚?当然读书的时候是知道的,工作后有点忘了,只知道它是利用栈递归遍历的,至于这里的先序的“先”,到底指的是先遍历左子树还是先遍历根节点给忘了。 为加深印象,今天打算做个小小的总结,先不管工作上有没用到(其实是有用到的,比如楼主曾经做二值图像连通算法的时候, ...
分类:
其他好文 时间:
2016-06-03 12:55:59
阅读次数:
156
树节点定义: 递归建立二叉树: 1、先序遍历 遍历方式:根节点-->左节点-->右节点 递归先序遍历: 非递归遍历: 对于任意一个结点p 1)访问结点p,并将p入栈 2)将p变为p的左孩子结点,如果p的不为空,循环至 1); 否则弹出当前栈顶使用p接收,将p变为p的右孩子结点; 3)当p结点为nul ...
分类:
其他好文 时间:
2016-06-02 19:43:44
阅读次数:
147
二叉树遍历的非递归实现
相对于递归遍历二叉树,非递归遍历显得复杂了许多,但换来的好处是算法的时间效率有了提高。下面对于我学习非递归遍历二叉树算法的过程进行总结为了便于理解,这里以下图的二叉树为例,分析二叉树的三种遍历方式的实现过程。 一.非递归实现二叉树的前序遍历
不借助递归,要实现二叉树的前序遍历,我们需要用到前面学过的栈这种数据结构。根据前序遍历的定义,先访问根节点,再访问左子树,最后访问右子树...
分类:
编程语言 时间:
2016-05-18 19:05:19
阅读次数:
155
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
public class Main {
public static class TreeNode{
T data;
TreeNode left=null;
TreeNode right=null...
分类:
编程语言 时间:
2016-05-18 18:24:11
阅读次数:
244
这道题目不是很简单,第一反应可能是真的去构造出一棵树,然后递归遍历,比较两棵树的每个结点是否相同。 但这样子很麻烦,而且递归遍历的效率不高,我看到很多人用递归的方法最后超时无法通过。 我的方法是用静态数组模拟出二叉搜索树,根据二叉搜索树的特性,第i个节点的左孩子是第2*i个节点,右孩子是第2*i+1 ...
分类:
其他好文 时间:
2016-05-16 21:29:50
阅读次数:
1189
二叉树先序遍历;(1)先序访问根节点(2)先序访问左子树(3)先序访问右子树二叉树中序遍历;(1)中序访问根节点(2)中序访问左子树(3)中序访问右子树二叉树后序遍历;(1)后序访问根节点(2)后序访问左子树(3)后序访问右子树测试用例:inta[10]={‘1‘,‘2‘,‘3‘,‘#‘,‘#..
分类:
其他好文 时间:
2016-05-12 00:04:26
阅读次数:
332
二叉树的非递归遍历中,前序和中序都比较简单。一. 前序遍历 前序遍历只需要首先对每一个父节点输出,然后再处理左子,将左儿子压栈,由于是前序遍历压栈前都先输出该节点(弹栈的时候就不用输出,当然也不能在弹栈的时候输出),当最左子节点入栈后,开始通过弹栈处理右子节点,对于叶子节点或者没有右节点的子节点就不需要处理,对于每一个非空右子节点,其处理方式和根节点一样。总之就是压栈时处理左子节点,弹栈再处理...
分类:
其他好文 时间:
2016-05-07 07:30:16
阅读次数:
126
1、与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)2、chmod [options] mode files option: -R 可递归遍历子目录3、ln 为某一个文件在 ...
分类:
系统相关 时间:
2016-05-04 17:15:21
阅读次数:
148