当前位置:   article > 正文

二叉搜索树:堆:最大堆的建立,插入和删除_最大堆搜索树

最大堆搜索树

前面我们讲到栈和队列的时候,这两种数据结构都是按时间的先后顺序来排列,如栈是按先进后出(FILO),后入先出的原则排列。而队列是按先进先出(FIFO)的原则排序。但有时候按这种时间原则的数据结构不能满足用户的一些需求,例如CPU需要执行程序的优先级别,很多时候不能靠时间顺序,有些程序重要性更高的时候,应该优先被调用,所以应该用一种按优先级高低来排列的数据结构,数据结构中的每一个对象都有各自的优先级,我们从这个结构序列中取出元素的原则是按优先级的高低来取出,而不是进入队列的先后顺序。这里就要用到一种数据结构:堆。如果我们要用二叉搜索树来实现堆这一结构,怎么做?

这里举例用最大堆,最大堆的二叉搜索树结构是,从根结点开始,每一个结点的优先级都比它的左右子树高。这样来实现的话,我们可以把二叉搜索树用一种平衡的,排好序的结构来存储从而提高后面操作的效率,那就是用完全二叉树。

堆最重要的特点就是结构有序性。用完全二叉树的结构,有序性分两种,一种是最大堆,也就是从根结点开始,任一结点的元素优先级都比它的左右子树高。第二种是最小堆,也就是从根结点开始,任一结点的元素优先级都比它的左右子树低。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/943821
推荐阅读
相关标签
  

闽ICP备14008679号