CẤU TRÚC DỮ LIỆU NGĂN XẾP VS HÀNG ĐỢI Bùi Tiến Lên 01/01/2017 NGĂN XẾP Ngăn xếp Định nghĩa 1 Ngăn xếp (stack) là một cấu trúc dữ liệu dùng để lưu trữ một tập hợp các phần tử I Hoạt động theo cơ chế “v[.]
Trang 1CẤU TRÚC DỮ LIỆU NGĂN XẾP VS HÀNG ĐỢI
Bùi Tiến Lên
01/01/2017
Trang 2NGĂN XẾP
Trang 3Ngăn xếp
Định nghĩa 1
Ngăn xếp (stack) là một cấu trúc dữ liệu dùng để lưu trữ một tậphợp các phần tử
-LIFO); nghĩa là, ta chỉ thấy và truy cập của đỉnh của ngăn xếp
Đức [Bauer and Samelson, 2001]
Trang 4Ngăn xếp (cont.)
Một lớp cấu trúc dữ liệu ngăn xếp sẽ bao gồm những thao các cơbản sau
Trang 5Minh họa hoạt động của ngăn xếp
Trang 6Minh họa hoạt động của ngăn xếp
Trang 7Minh họa hoạt động của ngăn xếp
Trang 8Minh họa hoạt động của ngăn xếp
Trang 9Minh họa hoạt động của ngăn xếp
Trang 10Cài đặt ngăn xếp
Kiểu dữ liệu stack có thể cài đặt bằng
Trang 11Cài đặt ngăn xếp (cont.)
Cài đặt lớp cho cấu trúc dữ liệu trừu tượng ngăn xếp Stack
Trang 12Ứng dụng của ngăn xếp
Kiểu dữ liệu ngăn xếp được dùng trong nhiều thuật toán
trị một biểu thức toán học
tuần, 8 hoàng hậu
Trang 13trong stack ra rồi in lên màn hình.
trên?
Trang 16Biểu thức toán học (cont.)
Ví dụ 3
Một số biểu thức toán học
trung tố tiền tố hậu tố
(A+B)*(C-D) *+AB-CD AB+CD-*
Nhận xét
Trang 17Thuật toán Ba Lan ngược
sang dạng hậu tố Q
và toán tử được biểu diễn bằng một ký tự
Trang 18Thuật toán Ba Lan ngược (cont.)
Trang 19Áp dụng thuật toán
Ví dụ 4
Chuyển biểu thức trung tố P=(A+B)*(C-(D+A)) sang biểu thứchậu tố Q bằng thuật toán Ba Lan ngược
Trang 20HÀNG ĐỢI
Trang 21Hàng đợi
Định nghĩa 2
Hàng đợi là một cấu trúc dữ liệu để
out - FIFO); cũng như cấu trúc dữ liệu ngăn xếp chúng ta chỉ
có thể truy xuất đến phần tử đầu tiên của ngăn xếp
Trang 22Cài đặt hàng đợi
Kiểu dữ liệu queue có thể cài đặt bằng
Trang 23Cài đặt hàng đợi (cont.)
Cài đặt lớp cho cấu trúc dữ liệu hàng đợi queue, về cơ bản nógiống như cấu trúc dữ liệu ngăn xếp
Trang 24Minh họa hoạt động của hàng đợi
Trang 25Minh họa hoạt động của hàng đợi
Trang 26Minh họa hoạt động của hàng đợi
Trang 27Minh họa hoạt động của hàng đợi
Trang 28Minh họa hoạt động của hàng đợi
Trang 29Ứng dụng của hàng đợi
Kiểu dữ liệu hàng đợi cũng được dùng trong rất nhiều thuật toán
hàng, bệnh viện
tuần, 8 hoàng hậu
Trang 30Thuật toán tìm đường đi theo chiều rộng
Algorithm 1 Tìm đường đi từ đỉnh v s đến v e
8: for mỗi đỉnh u kề với đỉnh v do
9: if đỉnh u chưa duyệt và không có trong queue then
Trang 31Áp dụng thuật toán
a
b
d g
c e f
Hình 1: Tìm đường đi
Trang 33Tài liệu tham khảo
Bauer, F L and Samelson, K (2001)
Verfahren zur automatischen verarbeitung von kodierten datenund rechenmaschine zur ausübung des verfahrens
In Pioneers and Their Contributions to Software Engineering,
pages 29–40 Springer