1. 程式人生 > >資料結構-優先佇列

資料結構-優先佇列

優先佇列的類定義

優先佇列是0個或多個元素的集合,每個元素都有一個優先權或值,對優先佇列執行的操作有1) 查詢;2) 插入一個新元素;3)
刪除.在最小優先佇列(min priority
queue)中,查詢操作用來搜尋優先權最小的元素,刪除操作用來刪除該元素;對於最大優先佇列(max priority
queue),查詢操作用來搜尋優先權最大的元素,刪除操作用來刪除該元素.優先權佇列中的元素可以有相同的優先權,查詢與刪除操作可根據任意優先權進行.

面試題:

優先佇列通常採用(1)的資料結構實現,向佇列中插入1個元素的時間複雜度為(2)

ans:
1.堆
2.O(logN)

解析:優先佇列是一種常用的資料結構,通常用堆實現,也可以用其他方式實現。
對應於大頂堆和小頂堆,存在最大優先佇列和最小優先佇列。以最大優先佇列為例,優先佇列除了具有堆上的一些操作,如調整堆, 構建堆之外,還有獲得優先佇列的最大元素,抽取出優先佇列的最大元素,向優先佇列中插入一個元素和增大優先佇列中某個元素的值。
其中除了獲得優先佇列的最大元素的時間複雜度是O(1)之外,其他操作均為二叉樹的高度O(lgN)