Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 3: Tổ chức ngăn xếp (Stack) & hàng đợi (Queue) trên mảng một chiều" trình bày các nội dung: Trình bày khái niệm ngăn xếp (Stack) và hàng đợi (Queue), các thao tác trên ngăn xếp và hàng đợi, minh họa các ứng dụng. . | Chương 3. Tổ chức ngăn xếp (Stack) & Hàng đợi (Queue) trên mảng một chiều Trần Minh Thái Email: minhthai@ Website: 1 Nội dung Trình bày khái niệm Ngăn xếp (Stack) và Hàng đợi (Queue) Các thao tác trên Ngăn xếp và Hàng đợi Minh họa các ứng dụng 2 2 Ngăn xếp Ngăn xếp là gì? Cách khai báo cấu trúc ngăn xếp dùng mảng một chiều? Các ứng dụng Cài đặt 3 Ví dụ về Ngăn xếp 4 Thành phần được lấy ra đầu tiên? Khái niệm Stack Gồm nhiều phần tử lưu trữ theo thứ tự Hoạt động theo cơ chế “Vào sau – Ra trước” (LIFO – Last In, First Out) Đỉnh ngăn xếp 5 Thao tác cơ bản trên Stack InitStack: khởi tạo Stack rỗng IsEmpty: kiểm tra Stack rỗng? IsFull: kiểm tra Stack đầy? Push: thêm 1 phần tử vào Stack Pop: lấy ra 1 phần tử khỏi Stack Push Pop 6 Thao tác Push vào Stack 7 Top PUSH 7 Thao tác Pop khỏi stack 8 Top POP Stack – Sử dụng mảng A B C A B C 0 1 2 3 4 5 6 7 8 9 Stack Top 9 Top Ngăn xếp – Sử dụng mảng 10 B A D C B A C B A D C B A E D C B A Top Top Top Top Top A Top Ví dụ, Ngăn xếp chứa số nguyên – Sử dụng mảng struct ttStack { int* StkArray; // mảng chứa các phần tử int StkMax; // số phần tử tối đa int StkTop; // vị trí đỉnh Stack }; typedef struct ttStack STACK; 11 Ngăn xếp số nguyên – Sử dụng mảng int InitStack(STACK& s, int MaxItems) { = new int[MaxItems]; if ( == NULL) return 0; = MaxItems; = -1; return 1; //Khởi tạo thành công } 12 Ngăn xếp số nguyên – Sử dụng mảng int IsEmpty(const STACK &s) { if () return 1; return 0; } 13 Stack số nguyên – Sử dụng mảng int IsFull(const STACK &s) { if () return 1; return 0; } 14 Stack số nguyên – Sử dụng mảng int Push (STACK &s, int newitem) { if (IsFull(s)==1) return 0; ; [] = newitem; return 1; } 15 Stack số nguyên – Sử dụng mảng int Pop(STACK &s, int &outitem) { if (IsEmpty(s)) return 0; outitem = []; ; return 1; } 16 Bài tập Viết hàm nhập, xuất Stack số nguyên dương sao cho: Cho . | Chương 3. Tổ chức ngăn xếp (Stack) & Hàng đợi (Queue) trên mảng một chiều Trần Minh Thái Email: minhthai@ Website: 1 Nội dung Trình bày khái niệm Ngăn xếp (Stack) và Hàng đợi (Queue) Các thao tác trên Ngăn xếp và Hàng đợi Minh họa các ứng dụng 2 2 Ngăn xếp Ngăn xếp là gì? Cách khai báo cấu trúc ngăn xếp dùng mảng một chiều? Các ứng dụng Cài đặt 3 Ví dụ về Ngăn xếp 4 Thành phần được lấy ra đầu tiên? Khái niệm Stack Gồm nhiều phần tử lưu trữ theo thứ tự Hoạt động theo cơ chế “Vào sau – Ra trước” (LIFO – Last In, First Out) Đỉnh ngăn xếp 5 Thao tác cơ bản trên Stack InitStack: khởi tạo Stack rỗng IsEmpty: kiểm tra Stack rỗng? IsFull: kiểm tra Stack đầy? Push: thêm 1 phần tử vào Stack Pop: lấy ra 1 phần tử khỏi Stack Push Pop 6 Thao tác Push vào Stack 7 Top PUSH 7 Thao tác Pop khỏi stack 8 Top POP Stack – Sử dụng mảng A B C A B C 0 1 2 3 4 5 6 7 8 9 Stack Top 9 Top Ngăn xếp – Sử dụng mảng 10 B A D C B A C B A D C B A E D C B A Top Top Top Top Top A Top Ví