Cấu trúc dữ liệu và giải thuật - chương 3
Số trang: 22
Loại file: ppt
Dung lượng: 468.50 KB
Lượt xem: 5
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 3 sẽ cung cấp cho các bạn các kiến thức về queue, cách mô tả queue: Một queue là một cấu trúc dữ liệu mà việc thêm vào được thực hiện ở một đầu (rear) và việc lấy ra được thực hiện ở đầu còn lại.Phần tử vào trước sẽ ra trước – FIFO.
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật - chương 3 A CCẤU TRÚC DỮ LIỆU VÀ B F GIẢI THUẬT (501040) D E G Chương 3: Queue K H Mô tả queue Một queue là một cấu trúc dữ liệu mà việc thêm vào được thực hiện ở một đầu (rear) và việc lấy ra được thực hiện ở đầu còn lại (front) Phần tử vào trước sẽ ra trước – FIFO (First In First Out) 2 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Queue trừu tượng Một queue kiểu T: Một dãy hữu hạn kiểu T Một số tác vụ: 1. Khởi tạo queue rỗng (create) 2. Kiểm tra rỗng (empty) 3. Thêm một giá trị vào cuối của queue (append) 4. Bỏ giá trị đang có ở đầu của queue (serve) 5. Lấy giá trị ở đầu của queue, queue không đổi (retrieve) 3 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Thiết kế queue enum Error_code {fail, success, overflow, underflow}; template class Queue { public: Queue(); //constructor //kiểm tra rỗng bool empty() const; Error_code append(const Entry &item); //đẩy item vào //bỏ 1 phần tử ở đầu Error_code serve(); //lấy giá trị ở đầu Error_code retrieve(Entry &item); //khai báo một số phương thức cần thiết khác private: //khai báo dữ liệu và hàm phụ trợ chỗ này }; 4 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Thiết kế các phương thức template bool Queue::empty() const; Pre: Không có Post: Trả về giá trị true nếu queue hiện tại là rỗng, ngược lại thì trả về false template Error_code Queue::append(const Entry &item); Pre: Không có Post: Nếu queue hiện tại không đầy, item sẽ được thêm vào cuối của queue. Ngược lại trả về giá trị overflow của kiểu Error_code và queue không đổi. template Error_code Queue::serve() const; Pre: Không có Post: Nếu queue hiện tại không rỗng, đầu của queue hiện tại sẽ bị hủy bỏ. Ngược lại trả về giá trị underflow của kiểu Error_code và queue không đổi. template Error_code Queue::retrieve(Entry &item) const; Pre: Không có Post: Nếu queue hiện tại không rỗng, đầu của queue hiện tại sẽ được chép vào tham biến item. Ngược lại trả về giá trị underflow của kiểu Error_code. 5 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Mở rộng queue Có thêm các tác vụ: Kiểm tra đầy (full) Tính kích thước (size) Giải phóng queue (clear) Lấy giá trị ở đầu và bỏ ra khỏi queue (serve_and_retrieve) Mã C++: template class Extended_queue: public Queue { public: bool full( ) const; Có các khả năng public, int size( ) const; protected, private void clear( ); Error_code serve_and_retrieve(Entry &item); }; 6 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Tính thừa hưởng Dùng tính thừa hưởng: Extended_queue có đầy đủ các thành phần của Queue Thêm vào đó các thành phần riêng của mình 7 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Queue liên tục Dùng một array: Có xu hướng dời về cuối array Hai cách hiện thực đầu tiên: Khi lấy một phần tử ra thì đồng thời dời hàng lên một vị trí. A B C D B C D B C D E Ban đầu Lấy ra 1 phần tử: Thêm vào 1 phần tử dời tất cả về trước Chỉ dời hàng về đầu khi cuối hàng không còn chỗ A B C D B C D B C D E Ban đầu Lấy ra 1 phần tử ...
Nội dung trích xuất từ tài liệu:
Cấu trúc dữ liệu và giải thuật - chương 3 A CCẤU TRÚC DỮ LIỆU VÀ B F GIẢI THUẬT (501040) D E G Chương 3: Queue K H Mô tả queue Một queue là một cấu trúc dữ liệu mà việc thêm vào được thực hiện ở một đầu (rear) và việc lấy ra được thực hiện ở đầu còn lại (front) Phần tử vào trước sẽ ra trước – FIFO (First In First Out) 2 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Queue trừu tượng Một queue kiểu T: Một dãy hữu hạn kiểu T Một số tác vụ: 1. Khởi tạo queue rỗng (create) 2. Kiểm tra rỗng (empty) 3. Thêm một giá trị vào cuối của queue (append) 4. Bỏ giá trị đang có ở đầu của queue (serve) 5. Lấy giá trị ở đầu của queue, queue không đổi (retrieve) 3 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Thiết kế queue enum Error_code {fail, success, overflow, underflow}; template class Queue { public: Queue(); //constructor //kiểm tra rỗng bool empty() const; Error_code append(const Entry &item); //đẩy item vào //bỏ 1 phần tử ở đầu Error_code serve(); //lấy giá trị ở đầu Error_code retrieve(Entry &item); //khai báo một số phương thức cần thiết khác private: //khai báo dữ liệu và hàm phụ trợ chỗ này }; 4 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Thiết kế các phương thức template bool Queue::empty() const; Pre: Không có Post: Trả về giá trị true nếu queue hiện tại là rỗng, ngược lại thì trả về false template Error_code Queue::append(const Entry &item); Pre: Không có Post: Nếu queue hiện tại không đầy, item sẽ được thêm vào cuối của queue. Ngược lại trả về giá trị overflow của kiểu Error_code và queue không đổi. template Error_code Queue::serve() const; Pre: Không có Post: Nếu queue hiện tại không rỗng, đầu của queue hiện tại sẽ bị hủy bỏ. Ngược lại trả về giá trị underflow của kiểu Error_code và queue không đổi. template Error_code Queue::retrieve(Entry &item) const; Pre: Không có Post: Nếu queue hiện tại không rỗng, đầu của queue hiện tại sẽ được chép vào tham biến item. Ngược lại trả về giá trị underflow của kiểu Error_code. 5 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Mở rộng queue Có thêm các tác vụ: Kiểm tra đầy (full) Tính kích thước (size) Giải phóng queue (clear) Lấy giá trị ở đầu và bỏ ra khỏi queue (serve_and_retrieve) Mã C++: template class Extended_queue: public Queue { public: bool full( ) const; Có các khả năng public, int size( ) const; protected, private void clear( ); Error_code serve_and_retrieve(Entry &item); }; 6 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Tính thừa hưởng Dùng tính thừa hưởng: Extended_queue có đầy đủ các thành phần của Queue Thêm vào đó các thành phần riêng của mình 7 Chương 3: Queue Khoa Công nghệ Thông tinĐH Bách Khoa Tp.HCM Queue liên tục Dùng một array: Có xu hướng dời về cuối array Hai cách hiện thực đầu tiên: Khi lấy một phần tử ra thì đồng thời dời hàng lên một vị trí. A B C D B C D B C D E Ban đầu Lấy ra 1 phần tử: Thêm vào 1 phần tử dời tất cả về trước Chỉ dời hàng về đầu khi cuối hàng không còn chỗ A B C D B C D B C D E Ban đầu Lấy ra 1 phần tử ...
Tìm kiếm theo từ khóa liên quan:
lập trình căn bản thủ thuật lập trình cấu trúc dữ liệu giải thuật tài liệu lập trìnhGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 317 0 0 -
114 trang 240 2 0
-
80 trang 220 0 0
-
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 214 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 207 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 161 0 0 -
Hướng dẫn lập trình với Android part 4
5 trang 156 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0