数据结构论坛

首页 » 分类 » 分类 » 数据结构树五堆Heap
TUhjnbcbe - 2020/12/4 16:28:00

一、什么是堆?优先队列(PriorityQueue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。问题:如何组织优先队列?

一般的数组、链表?

序的数组或者链表?

叉搜索树?AVL树?

若采用数组或链表实现优先队列

数组插入元素总是插入尾部T=O(1)删除

a.查找最大(小)元素

b.移动的元素,删除

T=O(1)

T=O(n)

链表插入元素总是插入链表的头部T=O(1)删除

a.查找最大(小)关键字

b.删去结点

T=O(n)

T=O(n)

有序数组插入

a.找到合适的位置

b.移动元素并插入

T=O(n)

T=O(n)

删除

删去最后一个元素

T=O(1)

有序链表插入

a.找到合适的位置

b.插入元素

T=O(n)

T=O(1)

删除

删除首元素或最后元素

T=O(1)

二、是否可以采用二叉树存储结构?二叉搜索树?如果采用二叉树结构,应更

1
查看完整版本: 数据结构树五堆Heap