Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,63 MB
Nội dung
STACK & QUEUE NGĂN XẾP & HÀNG ĐỢI Nội dung • Trình bày khái niệm Stack Queue • Minh họa ứng dụng • Các phương pháp xây dựng Stack Queue dựa cấu trúc liệu biết •Stack –Ví dụ –Định nghĩa –Các thao tác –Xây dựng Stack •Queue –Ví dụ –Định nghĩa –Các thao tác –Xây dựng Queue Ngăn xếp (Stack) Chồng khay cà phê Chồng tiền xu Chồng sách Chồng áo sơ mi Các ví dụ Ngăn xếp Ngăn xếp - Định nghĩa • Stack cấu trúc: • gồm nhiều phần tử có thứ tự • hoạt động theo chế “Vào sau – Ra trước” (LIFO – Last In, First Out) Đỉnh ngăn xếp Ngăn xếp - Định nghĩa • Các thao tác Stack: Push • InitStack: khởi tạo Stack rỗng • IsEmpty: kiểm tra Stack rỗng ? • IsFull: kiểm tra Stack đầy ? • Push: thêm phần tử vào đỉnh Stack, làm Stack đầy • Pop: lấy phần tử từ đỉnh Stack, làm Stack rỗng • StackTop: kiểm tra phần tử đầu Stack Pop Ngăn xếp • Minh họa thao tác Push Data Top Ngăn xếp • Minh họa thao tác Pop Data Top Ngăn xếp • Minh họa thao tác StackTop Ngăn xếp không thay đổi ? Data Top ? Ngăn xếp • Có hai cách để xây dựng ngăn xếp • Sử dụng mảng chiều • Sử dụng danh sách liên kết đơn Mảng chiều Danh sách liên kết đơn - Viết chương trình dễ dàng, nhanh chóng - Bị hạn chế số lượng phần tử cố định - Tốn chi phí tái cấp phát chép vùng nhớ sử dụng mảng động Phức tạp triển khai chương trình Khơng bị cố định số phần tử, phụ thuộc vào nhớ Ngăn xếp – Sử dụng mảng Xây dựng ngăn xếp mảng chiều Top StkTop Đỉnh ngăn xếp Stack 6 Ngăn xếp có phần tử ... danh sách liên kết đơn Mảng chiều Danh sách liên kết đơn - Viết chương trình dễ dàng, nhanh chóng - Bị hạn chế số lượng phần tử cố định - Tốn chi phí tái cấp phát chép vùng nhớ sử dụng mảng động... Ngăn xếp Ngăn xếp - Định nghĩa • Stack cấu trúc: • gồm nhiều phần tử có thứ tự • hoạt động theo chế “Vào sau – Ra trước” (LIFO – Last In, First Out) Đỉnh ngăn xếp Ngăn xếp - Định nghĩa • Các... MaxItems; s.StkTop = -1 ; // chưa có phần tử Stack return 1; // khởi tạo thành cơng } Ngăn xếp – Sử dụng mảng • Thao tác “Kiểm tra Stack rỗng” int IsEmpty(const STACK &s) { if (s.StkTop= =-1 ) return 1;