深度优先遍历:深度优先搜索算法(Depth First Search),是搜索算法的一种。是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其...
分类:
其他好文 时间:
2015-08-05 07:46:34
阅读次数:
311
在上一篇数据结构的博文《数据结构(三):非线性逻辑结构-二叉树》中已经对二叉树的概念、遍历等基本的概念和操作进行了介绍。本篇博文主要介绍几个特殊的二叉树,堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、线索二叉树,它们在解决实际问题中有着非常重要的应用。本文主要从概念和一些基本操作上进行分类和总结。
一、概念总揽
(1) 堆
堆(heap order)是一种特殊的表,如果将它看做是一颗完全二叉树的...
分类:
其他好文 时间:
2015-08-05 01:06:22
阅读次数:
208
题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。
例如输入数组{5,7,6,9,11,10,8}则返回true,因为这个整数序列是下图二叉树的后序遍历的结果。如果输入的数组是{7,4,6,5},由于没有哪颗二叉搜索树的后续遍历的结果是这个序列,因此返回false。
在后序遍历得到的序...
分类:
编程语言 时间:
2015-08-04 21:02:02
阅读次数:
204
1 #include 2 3 int isValid(int a[], int low, int high) { 4 if (low >= high) 5 return 1; 6 7 int root = a[high]; 8 int i = lo...
分类:
其他好文 时间:
2015-08-04 20:41:51
阅读次数:
144
笛卡尔树是一种同时满足二叉搜索树和堆的性质的数据结构。 可在一个数组上构造出来(时间复杂度可以达到O(n))。树中节点有几个属性, key(节点元素的大小)、index(节点在原数组中的索引)、left(左子节点)、right(右子节点)、parent(父节点)。性质树中的元素满足二叉搜索树性质,要...
分类:
其他好文 时间:
2015-08-04 20:37:05
阅读次数:
166
4.5 Implement a function to check if a binary tree is a binary search tree.LeetCode上的原理,请参见我之前的博客Validate Binary Search Tree 验证二叉搜索树。
分类:
其他好文 时间:
2015-08-04 00:37:06
阅读次数:
97
题目如下:
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:
The left subtree of a node contains only nodes with keys less than the node's k...
分类:
其他好文 时间:
2015-08-01 01:09:59
阅读次数:
109
4.3 Given a sorted (increasing order) array with unique integer elements, write an algorithm to create a binary search tree with minimal height.这道题给了我...
分类:
其他好文 时间:
2015-08-01 01:03:53
阅读次数:
118
oracle between and 边界问题,对于日期类型的to_date的格式进行了详细介绍...
分类:
数据库 时间:
2015-07-31 14:55:01
阅读次数:
144
OpenSessionInView模式解决的问题: * hibernate事物边界问题 * 因session关闭导致hibernate延迟加载例外的问题事物边界: 一个事物的完成应该是在业务层完成的,但是事物的创建却是在数据层来做,这样必定造成业务层和数据层耦合性增强。延迟加载例外: 如你所知,.....
分类:
其他好文 时间:
2015-07-30 22:42:06
阅读次数:
154