Bài giảng Cấu trúc dữ liệu và giải thuật: Hàng đợi ưu tiên trình bày các định nghĩa về hàng đợi ưu tiên, cài đặt hàng đợi ưu tiên, minh họa thao tác thêm phần tử, thao tác thêm phần tử,... Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1HÀNG ĐỢI ƯU TIÊN
Bùi Tiến Lên01/01/2017
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 3Hàng đợi ưu tiên
Định nghĩa 1
Hàng đợi ưu tiên (priority queue) là một hàng đợi trong đó mỗiphần tử được gắn với một con số được gọi là độ ưu tiên
tiên và quy tắc FIFO Nghĩa là phần tử nào có độ ưu tiên caonhất sẽ được lấy ra trước nhất Trong trường hợp có nhiềuphần tử có cùng độ ưu tiên thì sử dụng quy tắc FIFO
Spring 2017 Data structure & Algorithm 3
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 4Các thao tác cơ bản của hàng đợi ưu tiên
Các thao tác đối với hàng đợi ưu tiên giống với hàng đợi bìnhthường
Trang 5Cài đặt hàng đợi ưu tiên
Hàng đợi ưu tiên có thể cài đặt
Spring 2017 Data structure & Algorithm 5
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 6Cấu trúc dữ liệu cây heap
Định nghĩa 2
phận Trong phạm vi môn học chúng ta sẽ xét cây heap nhị
phân
I Cây max heap nhị phân là một cây nhị phân hoàn chỉnh
sao cho giá trị khóa tại một nút bất kỳ p không nhỏ hơn khóa
của cây con trái và cây con phải của nó
∀q ∈ {p → left, p → right} : q → key ≤ p → key (1)
I Cây min heap nhị phân là một cây nhị phân hoàn chỉnh sao
cho giá trị khóa tại một nút bất kỳ p không lớn hơn khóa của
cây con trái và cây con phải của nó
∀q ∈ {p → left, p → right} : q → key ≥ p → key (2)
Trang 7Minh họa cây heap
t0
t7 t8
Hình 1:Thứ tự của các phần tử trong một cây heap
Spring 2017 Data structure & Algorithm 7
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 8Minh họa cây heap (cont.)
Trang 9Thao tác thêm phần tử
Thao tác thêm một phần tử vào hàng đợi ưu tiên được cài đặtbằng cây max heap như sau
hai nút với nhau và lặp lại
Spring 2017 Data structure & Algorithm 9
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 10Minh họa thao tác thêm phần tử
biểu diễn bằng cây max heap dưới
Trang 11Minh họa thao tác thêm phần tử (cont.)
Trang 12Minh họa thao tác thêm phần tử (cont.)
Trang 13Minh họa thao tác thêm phần tử (cont.)
68
Hình 6:Hoán đổi 66 với 65
Spring 2017 Data structure & Algorithm 13
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 14Thao tác lấy phần tử
Thao tác lấy một phần tử ra khỏi hàng đợi được cài đặt bằng câyheap như sau
hoán đổi nó với nút con có độ ưu tiên cao hơn
Trang 15Minh họa thao tác lấy phần tử
68
Hình 7:Cây max heap
Spring 2017 Data structure & Algorithm 15
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trang 16Minh họa thao tác lấy phần tử (cont.)
Trang 17Minh họa thao tác lấy phần tử (cont.)
Trang 18Minh họa thao tác lấy phần tử (cont.)
Trang 19Minh họa thao tác lấy phần tử (cont.)
Trang 20Minh họa thao tác lấy phần tử (cont.)
Trang 22Đánh giá hàng đợi ưu tiên
Trang 23Đánh giá hàng đợi ưu tiên (cont.)
Cài đặt bằng cây heap
Phân tích chi phí thực hiện theo n (số lượng nút)
Trang 24Tài liệu tham khảo