树:以分层的方式存储数据;节点:根节点,子节点,父节点,叶子节点(没有任何子节点的节点);层:根节点开始0层;二叉树:每个节点子节点不超过两个;查找快(比链表),添加,删除快(比数组);BST:二叉树查找:设置根节点为当前节点;如果要插入的节点小于当前节点,则设置其左节点为新的当前节点;大于的话选右...
分类:
Web程序 时间:
2014-10-18 12:25:28
阅读次数:
205
人与计算机对弈问题: 计算机操作的对象是对弈过程中可能出现的棋盘状态————称为格局。 若将从对弈开始到结束的过程中所有可能出现的格局都画在一张图上,则可得到一颗倒长的“树”。 “树根”是对弈开始之前的棋盘格局,而所有的“叶子”就是可能出现的结局,对弈的过程就是从树根 沿树杈到某个叶...
分类:
其他好文 时间:
2014-10-17 15:05:43
阅读次数:
150
一共4个数字,共需要3个运算符,可以构造一个二叉树,没有子节点的节点的为值,有叶子节点的为运算符例如数字{1, 2, 3, 4},其中一种解的二叉树形式如下所示:因此可以遍历所有二叉树可能的形式,4个数的全排列,从4种运算符中挑选3种运算符(运算符可以重复)核心步骤1:需要遍历所有二叉树的可能...
小猴子下落
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关...
分类:
其他好文 时间:
2014-10-13 18:32:47
阅读次数:
126
二叉排序树(BST) 二叉排序树是空树或者是满足如下性质的树 (1)若它的左子树不空,则左子树上所有关键字的值均小于关键字的值 (2)若它的右子树不空,则右子树上所有关键字的值均大于跟关键字的值。 (3)左右子树各是一颗二叉排序树。说明: 在二叉排序树中插入关键字均为在新建的叶子上,由于找的的插入位...
分类:
编程语言 时间:
2014-10-12 17:03:28
阅读次数:
177
HeapSort 原理:(堆排序是不稳定的)实现堆排序可以看成分为两个部分: 1.从一个无序堆建成一个大顶堆(假设我们要求从小到大排序) 2.在“输出”堆顶元素之后,调整剩余元素成为一个新的堆建立大顶堆方法: 从最后一个非叶子结点开始向前遍历,每一个遍历到的结点都和它的两个(或者一个)子结点中的最大...
分类:
编程语言 时间:
2014-10-10 00:01:37
阅读次数:
244
题意:一个树,a b c 代表a--b边的权值为c。CHANGE x y 把输入的第x条边的权值改为y,QUERY x y 查询x--y路径上边的权值的最大值。第一次写树链剖分,其实树链剖分只能说是一种思想。树链剖分 就是 先选择从根节点到叶子节点的最长的路径的权值对应到线段树上,然后从一个子树的根...
分类:
其他好文 时间:
2014-10-08 01:26:54
阅读次数:
283
堆是一种特殊的二叉树,它具有以下两个性质:
1、每个节点的值大于或等于其每个子节点的值;
2、该树完全平衡,最后一层的叶子都处于最左侧的位置。
有最大堆和最小堆之分,以上定义是最大堆的定义,最小堆的定义如下:
1、每个节点的值小于或等于其每个子节点的值;
2、该树完全平衡,最后一层的叶子都处于最左侧的位置。
本文实现了堆的建立、删除、插入、堆排序。
本文中的例子以最大堆为...
分类:
其他好文 时间:
2014-10-07 18:10:53
阅读次数:
122
1红黑树简介
先来看下算法导论对R-B Tree的介绍:
红黑树,一种二叉查找树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。
通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近平的。
红黑树,作为一棵二叉查找树,满足二叉查找树的一般性质。下面,来了解下 二叉查找树的一般性质。
二叉查找树
二叉查找树...
分类:
其他好文 时间:
2014-10-05 19:24:38
阅读次数:
216
哈夫曼算法原理Wikipedia上面说的非常清楚了,这里我就不再赘述,直接贴过来了。1952年, David A. Huffman提出了一个不同的算法,这个算法能够为不论什么的可能性提供出一个理想的树。香农-范诺编码(Shanno-Fano)是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是...
分类:
其他好文 时间:
2014-10-03 19:15:55
阅读次数:
316