所謂優先順序佇列,其實就是佇列的資料項是按順序儲存的,和普通佇列很類似,也有乙個隊首乙個隊尾,並且也是從隊首刪除資料。只不過插入的時候不一定是插入到隊尾(因為要維持佇列的有序性)。
優先順序佇列一般有陣列和堆兩種資料結構實現方式,下面介紹的是陣列形式以插入排序演算法實現的優先順序佇列。
優先順序佇列可以用陣列實現也可以用堆來實現。一般來說,用堆實現的效率更高。
用陣列實現的插入操作需要o(n)的時間,刪除需要o(1)的時間。
public class priorityqueue }
class prioqueue
public void push(int num)else
}arr[i+1] = num;
countelem++;
system.out.println("插入元素:"+num);
}else
getqueue();
} }public void pop()
} public void getqueue()
system.out.println(""); }}
class priorityqtool
public void insert(long item)elseelse
}quearray[j+1] = item;
nitems++;
} }public long remove()
public long peekmin()
public boolean isempty()
public boolean isfull()
}
執行結果:
用堆實現優先順序佇列
申明 要用到堆的基本操作 鏈結為 typedef struct priorityqueue priorityqueue 優先順序佇列初始化 void priorityqueueinit priorityqueue q,compare com 向佇列中插入元素 void priorityqueuepu...
用NodeJs實現優先順序佇列PQueue
優先順序佇列 priorityqueue 是個很有用的資料結構,很多程式語言都有實現。nodejs是乙個比較新潮的伺服器語言,貌似還沒有提供相關類。這些天有用到優先順序佇列,因為時間很充足,閒來無事,就自己實現了一下。如下 script pqueue.js description 優先順序佇列類 a...
Java優先順序佇列PriotyQueue
優先順序佇列,顧名思義,和傳統 先進後出 的佇列相比,優先順序佇列在元素加入時就根據該元素的優先順序插入到相應位置。實際上優先順序佇列priotyqueue在poll時還是遵循先進後出,只是資料在進入時已經根據優先順序排序了。實現優先順序佇列需要實現乙個comparator,測試 如下 public...