tailieunhanh - Tài liệu hướng dẫn thực hành môn Cấu trúc dữ liệu và giải thuật - Bài 3: Stack và queue
Hoàn tất phần thực hành này, sinh viên có thể: Hiểu được cách thức sử dụng stack và queue trên cơ sở sử dụng danh sách liên kết để cài đặt, hiểu và vận dụng các cấu trúc stack và queue trong những bài toán đơn giản. | STACK và QUEUE MỤC TIÊU Hoàn tất phần thực hành này, sinh viên có thể: - Hiểu được cách thức sử dụng stack và queue trên cơ sở sử dụng danh sách liên kết để cài đặt. Hiểu và vận dụng các cấu trúc stack và queue trong những bài toán đơn giản. Thời gian thực hành: 120 phút đến 360 phút. Lưu ý: yêu cầu vận dụng thành thạo danh sách liên kết ở Lab02. TÓM TẮT - - Stack (ngăn xếp) và queue (hang đợi) là những cấu trúc dữ liệu dùng để lưu trử các phần tử của tập hợp theo những nguyên tắc đặc biệt khi thêm phần tử cũng như lấy phần tử ra khỏi cấu trúc. Stack (last in, first out – LIFO): phần tử vào stack sau cùng, là phần tử được lấy ra khỏi stack trước nhất. Queue (first in, first out – FIFO): phần tử vào queue trước nhất, là phần tử được lấy ra khỏi queue trước nhất. ☺Lab03 là phần vận dụng danh sách liên kết đã thực hành ở Lab02 để cài đặt Stack và Queue. (Lưu ý: chúng ta cũng có thể dùng mảng để cài đặt stack và queue, nhưng mảng đặc trưng cho cơ chế tĩnh, do vậy danh sách liên kết – cơ chế động - là cấu trúc tốt hơn mảng khi hiện thực Stack và Queue). Ví dụ: minh họa Stack Lấy Thêm STACK + Phần tử mới được thêm vào đỉnh của ngăn xếp. + Thao tác lấy phần tử ra khỏi ngăn xếp, nếu ngăn xếp khác rổng thì phần tử ở đầu ngăn xếp được lấy ra, ngược lại, ngăn xếp rỗng thì thao tác lấy phần tử thất bại. QUEUE Lấy Tài liệu hướng dẫn thực hành môn Cấu trúc dữ liệu và giải thuật HCMUS 2010 Trang Thêm 1 Ví dụ: minh họa Queue + Phần tử được thêm vào ở đầu queue. Do vậy, phần tử vào đầu tiên sẽ ở đáy của queue. Do vậy, khi lấy phần tử ra, nếu queue khác rổng thì phần tử ở đáy queue được lấy ra, ngược lại, queue bị rỗng thì thao tác lấy phần tử ra khỏi queue thất bại. NỘI DUNG THỰC HÀNH Cơ bản Yêu cầu: cài đặt stack và queue bằng danh sách liên kết. Do đặc trưng của stack và queue, chúng ta cần xây dựng 2 thao tác chính là thêm 1 phần tử vào stack hoặc queue, và lấy 1 phần tử ra khỏi stack hoặc queue. Dựa vào nguyên tắc thêm và lấy phần tử ra khỏi stack/queue, ta
đang nạp các trang xem trước