不多说啥了,这里不讲理论, 需要的可以自己去看书(如算法导论等), 就给出一份实现代码, 供有需要的人参考之用, 前后写了好久, 参考的是linux内核中红黑树的实现代码:http://lxr.linux.no/linux/lib/rbtree.c
实现的操作有:插入, 查找, 删除.
[code]
/*-----------------------------------------------------------
RB-Tree的插入和删除操作的实现算法
参考资料:
1) <
B-树、B+树、B*树(转) 2008-09-12 13:29 B-树 是一种多路搜索树(并不是二叉的): 1.定义任意非叶子结点最多只有M个儿子;且M>2; 2.根结点的儿子数为[2, M]; 3.除根结点以外的非叶子结点的儿子数为[M/2, M]; 4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字) 5.非叶子结点的关键字个数=指向儿子的指针个数-1; 6.非叶子结点的关键字:K[1], K[2],...
中秋在家,和闺女下棋,连续输棋,遂决定作弊,写个程序求下最优解.
棋是立体的一字棋,七列,六行,交替落子,每个棋子可以选择任一列放置,自动落到本列最低的空位上.
只要某一方的四个棋子连成横竖斜一条直线,即胜.
1.使用二维数组记录棋盘状态$board,使用R/G记录棋手$oper
2.function process($board, $oper, $path) 计算此状态下,指定棋手的最优结果
3.function judge($board, $oper, $x, $y) 判断指...
题目地址:http://www.soj.me/1426
以前直接排序加上做一些判断就AC了,现在想练练trie,可是一直没AC。代码如下:(大家顺便教我怎么结贴,一直没找到)[code]
#include
伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。 它的优势在于不需要记录用于平衡树的冗余信息。 在伸展树上的一般操作都基于伸展操作。 Splay Tree,中文叫伸展树,或者分裂树 (1)为什么需要splay tree? 各种查找树存在不足。比如:对于一个有n个节点的平衡树,虽然最坏情况下每次查找的时间复杂度不会超过O(logn),但是如果访问模式不均匀,平衡...
AVL树 维基百科,自由的百科全书 跳转到: 导航, 搜索 非 AVL树的例子 在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个儿子子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者 G.M. Adelson-Velsky 和 E.M. Landis,他们在 1962 年的论文《An algorit...