tailieunhanh - BÀI GIẢNG GIẢI THUẬT VÀ LẬP TRÌNH - QUY HOẠCH ĐỘNG - LÊ MINH HOÀNG - 3

Khi cài đặt bằng mảng, tuy các thao tác đối với Stack viết hết sức đơn giản nhưng ở đây ta vẫn chia thành các chương trình con, mỗi chương trình con mô tả một thao tác, để từ đó về sau, ta chỉ cần biết rằng chương trình của ta có một cấu trúc Stack, còn ta mô phỏng cụ thể như thế nào thì không cần phải quan tâm nữa, và khi cài đặt Stack bằng các cấu trúc dữ liệu khác, chỉ cần sửa lại các thủ tục StackInit, Push và Pop mà thôi. . Mô tả Stack. | Cấu trúc dữ liệu và Giải thuật 59 end. Khi cài đặt bằng mảng tuy các thao tác đối với Stack viết hết sức đơn giản nhưng ở đây ta vẫn chia thành các chương trình con mỗi chương trình con mô tả một thao tác để từ đó về sau ta chỉ cần biết rằng chương trình của ta có một cấu trúc Stack còn ta mô phỏng cụ thể như thế nào thì không cần phải quan tâm nữa và khi cài đặt Stack bằng các cấu trúc dữ liệu khác chỉ cần sửa lại các thủ tục StackInit Push và Pop mà thôi. . Mô tả Stack bằng danh sách nối đơn kiểu LIFO Khi cài đặt Stack bằng danh sách nối đơn kiểu LIFO thì Stack bị tràn khi vùng không gian nhớ dùng cho các biến động không còn đủ để thêm một phần tử mới. Tuy nhiên việc kiểm tra điều này rất khó bởi nó phụ thuộc vào máy tính và ngôn ngữ lập trình. Ví dụ như đối với Turbo Pascal khi Heap còn trống 80 Bytes thì cũng chỉ đủ chỗ cho 10 biến mỗi biến 6 Bytes mà thôi. Mặt khác không gian bộ nhớ dùng cho các biến động thường rất lớn nên cài đặt dưới đây ta bỏ qua việc kiểm tra Stack tràn. program StackByLinkedList type PNode TNode Con trỏ tói một nút của danh sách TNode record Cấu trúc một nút của danh sách Value Integer Link PNode end var Last PNode Con trỏ đỉnh Stack procedure StackInit Khởi tạo Stack rỗng begin Last nil end procedure Push V Integer Đẩy giá trị V vào Stack o thêm nút mói chứa V và nối nút đó vào danh sách var P PNode begin New P P .Value V Tạo ra một nút mói P .Link Last Last P Móc nút đó vào danh sách end function Pop Integer Lấy một giá trị ra khỏi Stack trả về trong kết quả hàm var P PNode begin if Last nil then WriteLn Stack is empty else begin Pop Last .Value Gán kết quả hàm P Last .Link Giữ lại nút tiếp theo lastA nút được đẩy vào danh sách trưóc nút LastA Dispose Last Last P Giải phóng bộ nhó cấp cho LastA cập nhật lại Last mói end end begin StackInit Test Đưa một vài lệnh để kiểm tra hoạt động của Stack Lê Minh Hoàng 60 Chuyên đề end. . HÀNG ĐỢI QUEUE Hàng đợi là một kiểu danh sách được trang bị hai phép toán bổ sung một phần tử vào cuối

TỪ KHÓA LIÊN QUAN