今年阿里校招首次使用线上笔试,20道单选(40mins)+3道附加题(80mins),一共2个小时。20道单选包括由于网络协议、操作系统、C++、数学逻辑题、数据结构和算法几个方面的题,其中数学和逻辑题占的比重最大,其次是C++和数据结构、算法。时间还是很紧张的。3道大题是:二叉树遍历、最长公共字串...
分类:
其他好文 时间:
2014-08-30 12:29:19
阅读次数:
170
今天学习到二叉树的时候,看到了二叉树的先序,后序,中序遍历方法。然而二叉树遍历方法递归实现十分简单,迭代版本实现起来些许复杂,就又上手试试二叉树的各种遍历方法以及实现版本,当是温习一遍之前了解到的实现方法。 三种遍历方法中递归实现难度相当,代码相当简略。 三种遍历方法中利用栈实现的迭代版本中...
分类:
其他好文 时间:
2014-08-29 23:50:08
阅读次数:
443
遍历二叉树
二叉树是一种非线性的数据结构。所谓的遍历二叉树就是按某种顺序访问二叉树中的每个节点,要求每个节点被访问一次且仅一次。
遍历操作实际上是将非线性结构线性化过程,其结果为线性序列。
二叉树的操作
(1)先序遍历---结束的条件是二叉树是否为空 TLR
先访问根节点;
再先序访问左子树;
再先序访问右子树。
(2)中序遍历---结束的条件是二叉树是否为...
分类:
其他好文 时间:
2014-08-29 18:24:18
阅读次数:
154
二叉查找树是一种树数据结构,它与普通的二叉树最大的不同就是二叉查找树满足一个性质:对于树中的任意一个节点,均有其左子树中的所有节点的关键字值都不大于该节点的关键字值,其右子树中的任意一个节点的关键字值都不小于该节点的关键字值。在二叉查找树上可以进行搜索、取最小值、取最大值、取指定节点的前驱、取指定节点的后继以及插入和删除节点操作,因此二叉查找树和堆(大顶堆和小顶堆)一样,也可以做优先队列,都能够在 O(lgn) 的时间内取得集合的最大值和最小值。一个二叉查找树的期望高度为O(lgn),因此在二叉查找树上的基...
分类:
其他好文 时间:
2014-08-27 01:40:47
阅读次数:
273
二叉树的广度遍历想想还是比较简单的,利用队列存储当前结点的左儿子和右儿子用作未来的访问。
代码实现
/**
* 源码名称: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