一、深度优先搜索 深度优先搜索算法(Depth First Search),是图论中的经典算法。 深度优先搜索算法是沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当结点所有子结点那一层都被搜索过,再回溯返回到当前结点的邻结点,继续搜索,直到遍历完整棵树。一般采用的是前序遍历,先根然后再左右结点的 ...
分类:
编程语言 时间:
2016-06-13 13:39:07
阅读次数:
389
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
方法一:非递归版
解题思路:
1.核心是中序遍历的非递归算法。
2.修改当前遍历节点与前一遍历节点的指针指向。
import java.util.Stack;
public TreeNode ConvertBSTToBiList(TreeNode r...
分类:
其他好文 时间:
2016-06-12 01:59:34
阅读次数:
125
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
思路分析:BST的后序序列的合法序列是,对于一个序列S,最后一个元素是x (也就是根),如果去掉最后一个元素的序列为T,那么T满足:T可以分成两段,前一段(左子树)小于x,后一段(右子树)大于x,且这两段(子树)都是合法的后序序列。
pub...
分类:
其他好文 时间:
2016-06-12 01:57:39
阅读次数:
190
题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
代码:
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNo...
分类:
其他好文 时间:
2016-06-12 01:57:28
阅读次数:
150
问题描述:共有多少块相邻的空白的区域 注意递归和边界问题的值的设置 源代码如下: ...
分类:
其他好文 时间:
2016-06-11 14:32:36
阅读次数:
567
二叉搜索树 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4117 Accepted Submission(s): 1802 Problem ...
分类:
编程语言 时间:
2016-06-11 10:35:07
阅读次数:
282
细心的你应该发现了,二叉搜索树的每个节点都要比左边的子孙节点的值要大,比右边的要小。二叉搜索树的中序遍历就是将整棵树按从小到大的顺序输出。是不是很神奇^o^ 如何在二叉搜索树中查找某个元素呢?首先从根出发,如果和根的值相等,则返回根,否则如果比根小就去左孩子,如果比根大就去右孩子,依次递归进行,直到 ...
分类:
其他好文 时间:
2016-06-10 17:54:07
阅读次数:
277
一.二叉搜索树的性质1.每一个节点都有一个key作为搜索依据,每一个节点的key都不同。2.左子树的key值比根节点校3.右子树的key值比根节点的大。4.左右子树都是二叉搜索树。二.结构1.节点(BinarySerachTreeNode)template<classK,classV>
structSearchBinTreeNode
{
Search..
分类:
其他好文 时间:
2016-06-09 16:04:58
阅读次数:
190
在算法系列(七)数据结构之树的基本结构和二叉树的遍历 中介绍了基本的树结构,二叉树的实现和遍历。
这篇文章重点学习一下二叉查找树。
概述
二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree)二叉搜索树。
二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话...
分类:
编程语言 时间:
2016-06-09 06:26:31
阅读次数:
300
排序算法可谓数据结构模块中的重中之重,常见的哈希表,二叉树,搜索树/平衡树,位图等数据结构只是处理实际问题的抽象方法,实际在处理接受或生成的数据集时,排序算法显得尤其重要,排序算法家族很庞大,其中包括了冒泡排序,选择排序,插入排序,堆排序,快速排序,归并排序,基数排序,计数排序,希尔排序,箱排序,树型排序等众多算法,每种排序都有各自的特性,没有好坏之分,只有在特定的场景使用合适的排序算法才是上策,单纯的来比显得太过绝对,没有可比性。因为实际需求及各方面条件的限制使得排序算法的可选范围往往只缩小到某一种或某几...
分类:
编程语言 时间:
2016-06-07 06:37:23
阅读次数:
291