Jungle: Stack&Queue&PQ&BST

数据结构(逻辑层)
内存里的存放方法
对应的java class
对应的java interface

queue(FIFO)

array/ linked list

ArrayDeque / LinkedList

Queue

stack(LIFO)

array / linked list

ArrayDeque / LinkedList

Deque

deque(double-ended)

array/ linked list

ArrayDeque / LinkedList

Deque

heap

array(abstract tree)

PriortyQueue

Queue

  • The PriorityQueue is implemented using an array.(Array-based Complete Tree)

  • What is MinHeap vs MaxHeap?

    • 堆顶元素是最大/小值,并且每个subtree root均是该子树最大/小值

  • 判断heap(complete tree+ 堆序性)

    • 堆序性:堆永远可以保证每个子树的最值在顶端

      • 类似BBST中的平衡性,不管做了任何操作,总能维持自己是个最大/最小堆的性质

Heap API

  • 该用的是最大最小,但是查找(删除)就不太给力

Heap vs Self-balancing BST

search(Object)
delete() mark
remove(Object): search + delete

heap

O(n)

O(log n)

O(n + log n) = O(n)

self-balancing BST

O(log n)

O(log n)

O(log n)

Last updated