Professional Documents
Culture Documents
Priority Queue
Priority Queue
Ví dụ:
Input Output
6 60
128276
Đầu tiên ta ghép hai ván gỗ thứ nhất và thứ hai. Khi này, các ván gỗ còn lại có
chiều dài là 3 8 2 7 6, chi phí hiện tại là 3
Trong các ván gỗ sau khi ghép, ta ghép ván gỗ thứ nhất và thứ ba. Khi này, các
ván gỗ còn lại có chiều dài là 5, 8, 7, 6, chi phí hiện tại là 8
Trong các ván gỗ sau khi ghép, ta ghép ván gỗ thứ nhất và thứ tư. Khi này, các
ván gỗ còn lại có chiều dài là 11, 8, 7, chi phí hiện tại là 19
Trong các ván gỗ sau khi ghép, ta ghép ván gỗ thứ hai và thứ ba. Khi này, các ván
gỗ còn lại có chiều dài là 11, 15, chi phí hiện tại là 34
Ta ghép hai ván gỗ còn lại. Khi này, chỉ còn một ván gỗ cuối cùng có chiều dài
26. Chi phí cuối cùng là 60
I Khái Niệm
-Hàng đợi ưu tiên là loại hàng đợi sắp xếp các phần tử dựa trên giá trị ưu tiên của
chúng. Các phần tử có giá trị ưu tiên cao hơn thường được truy xuất trước các phần tử
có giá trị ưu tiên thấp hơn.
-Trong hàng đợi ưu tiên, mỗi phần tử có một giá trị ưu tiên gắn liền với nó. Khi bạn
thêm một phần tử vào hàng đợi, nó sẽ được chèn vào vị trí dựa trên giá trị ưu tiên của
nó.
-Có mộ t số cách để triể n khai hàng đợ i ưu tiên, bao gồ m sử dụ ng
* mả ng,
*danh sách liên kế t,
* vùng heap
* cây tìm kiế m nhị phân.
// sử dụng Mảng
#include <bits/stdc++.h>
struct item {
int value;
int priority;
};
size++;
// Chèn phần tử
pr[size].value = value;
pr[size].priority = priority;
int peek()
// phần tử có
highestPriority = pr[i].priority;
ind = i;
highestPriority = pr[i].priority;
ind = i;
void dequeue()
size--;
}
// Mã nguồn chính
int main()
// theo ưu tiên
enqueue(10, 2);
enqueue(14, 4);
enqueue(16, 4);
enqueue(12, 3);
dequeue();
// Kiểm tra phần tử đầu tiên
ind = peek();
dequeue();
ind = peek();
return 0;