Data structs
文章平均质量分 91
过往记忆
这个作者很懒,什么都没留下…
展开
-
数据结构:红黑树
一、定义 红黑树是一种特殊的二叉查找树,它的每一个结点都被标记为红色或者黑色。是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在原创 2012-10-21 00:38:14 · 33911 阅读 · 2 评论 -
数据结构:块状链表
已转到:http://www.wypblog.com/archives/166一、概述 有时候我们需要设计这样一种数据结构:它能快速在要求位置插入或者删除一段数据。先考虑两种简单的数据结构:数组和链表。数组的优点是能够在O(1)的时间内找到所要执行操作的位置,但其缺点是无论是插入或删除都要移动之后的所有数据,复杂度是O(n)的。链表优点是能够在O(1)的时间内插入和删除一段数据原创 2012-12-15 21:32:08 · 16863 阅读 · 22 评论 -
数据结构:堆
已移到:http://www.wypblog.com/archives/97堆常用来实现优先队列,在这种队列中,待删除的元素为优先级最高(最低)的那个。在任何时候,任意优先元素都是可以插入到队列中去的,是计算机科学中一类特殊的数据结构的统称一、堆的定义最大(最小)堆是一棵每一个节点的键值都不小于(大于)其孩子(如果存在)的键值的树。大顶堆是一棵完全二叉树,同时也是一棵最大树。小顶堆是一棵完全完全二原创 2012-10-16 11:27:35 · 54696 阅读 · 4 评论 -
数据结构:线段树
已迁往:http://www.iteblog.com/archives/144一、线段树基本概念 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。 对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子原创 2012-11-24 14:54:24 · 116274 阅读 · 4 评论 -
数据结构:位图法
已移到:http://www.wypblog.com/archives/148一、定义 位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。在STL中有一个bitset容器,其实就是位图法,引用bitset介绍:A bitset is a special container clas原创 2012-11-29 12:48:45 · 31418 阅读 · 15 评论 -
数据结构: 平衡二叉树
一、定义 平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用算法有红黑树、AVL、Treap、伸展树等。 平衡二叉树是在二叉排序树(BST)上引入的,就是为了解决二叉排序树的不平衡性导致时间复杂度大大下原创 2012-10-27 22:33:01 · 40596 阅读 · 3 评论 -
数据结构:胜者树与败者树
已移到: http://www.iteblog.com/archives/93假设有k个称为顺串的有序序列,我们希望将他们归并到一个单独的有序序列中。每一个顺串包含一些记录,并且这些记录按照键值的大小,以非递减的顺序排列。令n为k个顺串中的所有记录的总数。并归的任务可以通过反复输出k个顺串中键值最小的记录来完成。键值最小的记录的选择有k种可能,它可能是任意有一个顺串中的第1个记录。并归k个顺串的最原创 2012-10-15 22:15:36 · 27441 阅读 · 14 评论