分為最小優先順序佇列和最大優先順序佇列。
優先順序佇列是一種用來維護一組元素構成的集合s的資料結構,這一組元素都有乙個關鍵字key,乙個最大優先順序佇列支援的操作:
insert(s,x);把x插入到集合s中
maxmum(s);返回s中最大元素
extra_max(s);去掉s中最大關鍵字並返回該最大關鍵子
increase_key(s,x,k);將元素x的關鍵字的值增加到k,這裡k的值不小於x的關鍵字。
#include#include#includeusing namespace std;
int n;
void max_heapify(int *v,int i);
void heapsort();
void build_max_heap(int *v)
void input(int *v)
void output(int *v) }
void max_heapify_effective(int *v,int i)//非遞迴演算法
else break;}}
void heap_increase_key(int *v,int i,int key)//將堆中位置為i的元素改為key並保持最大堆的性質
for(int i=0;i<=m;++i)
cout<>i;
//max_heapify(v,i);
output(v);
cout<>a>>key;
heap_increase_key(v,a,key);
output(v);
cout<<"please input the insert key:"<>key;
max_heap_insert(v,key);
output(v);
heapsort(v);
//max_heapify_effective(v,i);
return 0;
}
佇列 優先順序佇列
優先順序佇列的隊尾是不需要改變的,永遠在低下標處。當佇列增加資料時,隊頭的位置就是資料項的大小減去1.public class priorityq 插入 public void insert long item else quearray j 1 item nitem 刪除 public long ...
優先順序佇列
1 include stdafx.h 2 include3 4 using namespace std 5 6 define max heap len 107 int heap max heap len 8 int heap size 0 the number of elements in heap...
優先順序佇列
堆乙個很常見的應用 作為高效的優先順序佇列。如堆一樣,佇列也有兩種 最大優先順序佇列和最小優先順序佇列。優先順序佇列是一種用來維護由一組元素構成的集合s的資料結構,這一組元素中的每乙個都有乙個關鍵字key。乙個最大優先順序佇列支援以下操作 最大優先順序佇列的乙個應用是在一台分時計算機上進行作業排程。...