摘要:
最近发现自己在高级数据结构方面好薄弱的,于是看了很多文档,发现这篇不错。数据结构——堆的操作和实现当应用优先级队列或者进行堆排序时,一般利用堆来实现。堆是一个完全(除最底层外都是满的)二叉树,并满足如下条件:1、根结点若有子树,则子树一定也是堆。2、根结点一定大于(或小于)子结点。因为要求堆必须是完全二叉树,所以可以用线性的数据结构,比如数组,来实现堆。利用数组实现,则对于长为N的堆中的元素从0到N-1排列,有:i的父结点:Parent(i)=(i+1)/2-1i的左叶子:Left(i)=(i+1)*2-1i的右叶子:Right(i)=(i+1)*2堆的操作主要以一个“堆化”(Heapify) 阅读全文
posted @ 2012-08-22 09:22
一生挚爱
阅读(135)
评论(0)
推荐(0)

浙公网安备 33010602011771号