一.堆(heap)
优先队列(Priority Queue):特殊的“队列”,取出元素的顺序是依照元素的优先权(关键字)大小,而不是元素进入队列的先后顺序。
数组 : 插入 — 元素总是插入尾部 ~ O ( 1 ) 删除 — 查找最大(或最小)关键字 ~ O ( n ) 从数组中删去需要移动元素 ~ O( n ) 链表: 插入 — 元素总是插入链表的头部 ~ O ( 1 ) 删除 — 查找最大(或最小)关键字 ~ O ( n ) 删去结点 ~ O( 1 ) 有序数组: 插入 — 找到合适的位置 ~ O( n ) 或 O(log2 n ) 移动元素并插入 ~ O( n ) 删除 — 删去最后一个元素 ~ O( 1 ) 有序链表: 插入 — 找到合适的位置 ~ O( n ) 插入元素 ~ O( 1 ) 删除 — 删除首元素或最后元素 ~ O( 1 ) 二叉树 删除会导致不平衡