Kiến trúc máy tính - Bài 8

28 18 0
Kiến trúc máy tính - Bài 8

Đ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

Cấu trúc dữ liệu ngăn xếp Stack là cách tổ chức lưu trữ các đối tượng dưới dạng một danh sách tuyến tính mà việc bổ sung đối tượng và lấy các đối tượng ra được thực

Bài Cấu trúc liệu ngăn xếp Stack Stack cách tổ chức lưu trữ đối tượng dạng danh sách tuyến tính mà việc bổ sung đối tượng lấy đối tượng thực đầu danh sách Stack gọi danh sách kiểu LIFO (Last In First Out - vào sau trước) Các vấn đề cần nghiên cứu  Cấu trúc liệu trừu tượng Stack (ADT Stack)  Những ứng dụng Stack  Cài đặt Stack dựa mảng  Sự phát triển stack dựa mảng Cấu trúc liệu trừu tượng (ADT- Abtract Data Type)  Các thành phần ADT     Dữ liệu lưu trữ Các phép toán liệu Các điều kiện xảy lỗi kết hợp với phép tốn Ví dụ: Mơ hình ADT hệ thống kho hàng đơn giản - Dữ liệu lưu trữ theo phiếu mua/bán - Các phép tốn: + Hóa đơn buy(kho, số lượng, giá) + Hóa đơn sell(kho, số lượng, giá) + void cancel(Số hóa đơn) //Số hóa đơn Điều kiện lỗi: - Mua/bán mặt hàng khơng có kho - Hủy bỏ phiếu mà phiếu không tồn Cấu trúc liệu trừu tượng Stack    Stack ADT lưu trữ đối tượng Bổ sung lấy phần tử theo kiểu “Vào sau trước” – “Last In First Out” Các phép tốn chính: push(Object o): bổ sung đối tượng o vào Stack pop(): lấy trả lại phần tử bổ sung vào cuối Stack Các phép toán bổ trợ top() trả lại tham chiếu đến phần tử bổ sung vào cuối Stack Size(): trả lại số phần tử lưu trữ Stack isEmpty(): trả lại giá trị kiểu boolean để xác định Stack có lưu trữ phần tử hay không  Các trường hợp ngoại lệ  Ngoại lệ: việc thực phép toán mà trường hợp khơng thể thực  Với Stack ADT phép tốn pop top thực Stack rỗng Khi thực phép toán pop top Stack rỗng thi dẫn đễn ngoại lệ Stack rỗng Một số ứng dụng Stack  Các ứng dụng trực tiếp • • •  Lưu lại trang Web thăm trình duyệt Thứ tự Undo trình soạn thảo Lưu chữ biến hàm gọi tới hàm khác, hàm gọi lại gọi tới hàm khác, tiếp tục Các ứng dụng gián tiếp • • Cấu trúc liệu bổ trợ cho số thuật toán Là thành phần cấu trúc liệu khác Ví dụ: Sự thực hệ thống viết C++  Hệ thống viết băng C++ chạy giữ phần chuỗi mắt xích các hàm hoạt động Stack  Khi hàm gọi, hệ thực đẩy vào Stack khung chứa bao gồm: - Các biến cục giá trị trả lại hàm  Khi hàm trả lại giá trị, khung Stack lấy máy tiếp tục thực đến phương thức đỉnh Stack Cài đặt Stack mảng    Cách đơn giản cài đặt Stack sử dụng mảng Chúng ta thực bổ sung phần tử vào từ trái qua phải Sử dụng biến t lưu số phẩn tử đỉnh Stack Cài đặt Stack mảng (tiếp)   Mảng lưu trữ phần tử Stack dẫn đến đầy Phép tốn bổ sung phần tử dẫn đến ngoại lệ: FullStackException - Giới hạn mảng sử dụng cài đặt - Không phải chất Stack ADT Thuật toán bậc Thuật toán span1 chạy thời gian O(n2) Tính span với stack  Chúng ta lưu trữ số phần tử để sử dụng “quay lại tìm kiếm”  Chúng ta duyệt mảng từ trái qua phải • • • • Đặt i số Ta pop số từ Stack đến tìm thấy số j mà X[i]

Ngày đăng: 11/05/2021, 03:48

Mục lục

    Bài 8. Cấu trúc dữ liệu ngăn xếp

    Các vấn đề cần nghiên cứu

    Cấu trúc dữ liệu trừu tượng (ADT- Abtract Data Type)

    Cấu trúc dữ liệu trừu tượng Stack

    Các trường hợp ngoại lệ

    Một số ứng dụng của Stack

    Ví dụ: Sự thực hiện trong hệ thống được viết bằng C++

    Cài đặt Stack bằng mảng

    Cài đặt Stack bằng mảng (tiếp)

    Thực hành và những hạn chế

Tài liệu cùng người dùng

Tài liệu liên quan