1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Cấu trúc dữ liệu - Chương 5: Ngăn xếp - Hàng đợi

83 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

1 Chương 5: NGĂN XẾP – HÀNG ĐỢI (Stack - Queue) Nội dung   Ngăn xếp (Stack) Hàng đợi (Queue) Chương 5: Ngăn xếp – Hàng đợi Nội dung  Ngăn xếp (Stack)  Khái niệm Stack  Các thao tác Stack  Hiện thực Stack  Ứng dụng Stack Chương 5: Ngăn xếp – Hàng đợi Stack - Khái niệm  Stack danh sách mà đối tượng thêm vào lấy đầu danh sách (A stack is simply a list of elements with insertions and deletions permitted at one end)  Vì thế, thao tác Stack thực theo chế LIFO (Last In First Out - Vào sau trước) Chương 5: Ngăn xếp – Hàng đợi Stack – Các thao tác  Stack hỗ trợ thao tác chính:     Push: Pop: Thêm đối tượng vào Stack Lấy đối tượng khỏi Stack Ví dụ: 523 Stack hỗ trợ số thao tác khác:  isEmpty(): Kiểm tra xem Stack có rỗng không  Top(): Trả giá trị phần tử nằm đầu Stack mà khơng hủy khỏi Stack Nếu Stack rỗng lỗi xảy Chương 5: Ngăn xếp – Hàng đợi Stack – Hiện thực Stack (Implementation of a Stack) Mảng chiều Kích thước stack thiếu, lúc thừa Push / Pop phức tạp Chương 5: Ngăn xếp – Hàng đợi Danh sách LK Cấp phát động! Push/Pop dễ dàng Hiện thực Stack dùng mảng (Implementation of a Stack using Array)  Có thể tạo Stack cách khai báo mảng chiều với kích thước tối đa N (ví dụ: N =1000)    Stack chứa tối đa N phần tử đánh số từ đến N-1 Phần tử nằm đỉnh Stack có số top Như vậy, để khai báo Stack, ta cần mảng chiều, biến số nguyên top cho biết số đỉnh Stack: struct Stack { DataType list[N]; int top; }; Chương 5: Ngăn xếp – Hàng đợi Hiện thực Stack dùng mảng (tt.) (Implementation of a Stack using Array)  Các hàm cần cài đặt:       Init( Stack &s ): Khởi tạo Stack isEmpty( Stack s ) Push( Stack &s , DataType x ) Pop( Stack &s ) Top( Stack &s ) Khi cài đặt mảng chiều, Stack bị giới hạn kích thước nên cần xây dựng thêm thao tác phụ cho Stack:  isFull(): Kiểm tra xem Stack có đầy chưa, Stack đầy, việc gọi đến hàm Push() bị lỗi Chương 5: Ngăn xếp – Hàng đợi Hiện thực Stack dùng mảng (tt.) (Implementation of a Stack using Array)  Khởi tạo Stack: void Init (Stack &s) { s.top = 0; } Chương 5: Ngăn xếp – Hàng đợi Hiện thực Stack dùng mảng (tt.) (Implementation of a Stack using Array) 10  Kiểm tra Stack có rỗng hay khơng:   Rỗng: hàm trả Ngược lại: hàm trả int isEmpty(Stack s) { if ( s.top==0 ) return 1; // stack rỗng else return 0; } Chương 5: Ngăn xếp – Hàng đợi

Ngày đăng: 15/10/2023, 05:33