摘要: 堆是一种数据结构,因为Heapsort而被提出。除了堆排序,“堆”这种数据结构还可以用于优先队列的实现。堆首先是一个完全二叉树:它除了最底层之外,树的每一层的都是满的,且最底层中的节点处于左边,相互之间没有“跳变”;其次,堆有次序属性:每个节点中的数据项都大于或者等于其子女的数据项(如果是记录,则这些记录中的某个关键域必须满足这一属性)。 当然,这是指大顶堆,小顶堆则是父节点比子节点都要小。所谓队列,就是一个FIFO表(first in, first out)。优先队列,就是在队列的基础上,每个元素加一个优先级,last in的元素可能会first out,这就是优先级在起作用。我想实现这样一 阅读全文
posted @ 2013-08-23 23:27 ChrisZZ 阅读(5291) 评论(0) 推荐(0) 编辑
摘要: 二叉查找树,英文Binary Search Tree,也叫二叉排序树,是一种基本的数据结构,简称BST它支持多种动态集合操作,包括查找(find),最小值(minimum),最大值(maximum),后继(successor),前驱(predecessor),插入(insert),删除(delete),以及中序遍历等。它既可以用作字典,也可以用作优先队列。BST不是稳定的树,极端情况下会退化为线性结构,但平均期望上,insert,delete操作可以为O(lg n),树的期望高度为O(lg n)。参考了《算法导论》等书,写出了具有insert,delete,find功能的BST,如果有认为不正 阅读全文
posted @ 2013-08-23 14:11 ChrisZZ 阅读(1239) 评论(0) 推荐(0) 编辑