Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Trần Minh Thái (2016)

64 4 0
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 3 - Trần Minh Thái (2016)

Đ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

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 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, tổ chức dữ liệu dùng mảng 1 chiều, minh họa các ứng dụng

Chương Tổ chức ngăn xếp (Stack) & Hàng đợi (Queue) mảng chiều (3t) Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Nội dung Trình bày khái niệm Ngăn xếp (Stack) Hàng đợi (Queue) Các thao tác Ngăn xếp Hàng đợi Tổ chức liệu dùng mảng chiều Minh họa ứng dụng Ngăn xếp Ngăn xếp gì? Cách khai báo cấu trúc ngăn xếp dùng mảng chiều? Các ứng dụng Cài đặt Ví dụ Ngăn xếp Thành phần lấy đầ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 chế “Vào sau – Ra trước” (LIFO – Last In, First Out) Đỉnh ngăn xếp Thao tác 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 phần tử vào Stack Pop: lấy phần tử khỏi Stack Push Pop PUSH Thao tác Push vào Stack Top Thao tác Pop khỏi stack Top POP Stack – Sử dụng mảng Top C B A Stack B C Top A 9 Ngăn xếp – Sử dụng mảng E D D D C C C B B B B A A A A C B A Top A Top Top Top Top 10 Top Queue số nguyên Khi thêm nhiều phần tử xảy tượng “tràn giả” Qarray 37 22 15 QMax = Nối dài mảng (mảng động) hay sử dụng mảng vô lớn? Giải pháp?QNumItems =6 QFront = QRear = 50 Queue số nguyên Xử lý mảng danh sách vòng Qarray 37 22 15 QMax = QNumItems = QFront = QRear = 51 Queue số nguyên VD: Cho queue sau Chỉ số mảng   11 19 21 81   QArray QMax QNumItems QFront QRear   Queue số nguyên Thêm giá trị 123 vào hàng đợi Chỉ số mảng   11 19 21 81  123 QArray QMax QNumItems QFront QRear   Queue số nguyên Lấy phần tử khỏi hàng đợi Chỉ số mảng   11 19 21 81  123 QArray QMax QNumItems QFront QRear   Queue số nguyên Thêm giá trị 456 vào hàng đợi Chỉ số mảng QArray QMax QNumItems QFront QRear 0  456 11 19 21 81  123   Queue số nguyên – Khởi tạo public bool InitQueue (int MaxItem) { QArray = new int[MaxItem]; if (QArray == NULL) return false; QMax = MaxItem; QNumItems = 0; QFront = QRear = -1; return true; } 56 Queue số nguyên – Kiểm tra rỗng public bool IsEmpty() { if (QNumItems == 0) return true; return false; } 57 Queue số nguyên – Kiểm tra đầy public bool IsFull() { if (QMax == QNumItems) return true; return false; } 58 Queue số nguyên – Thêm phần tử vào queue public bool EnQueue(int newitem) { if (IsFull()) return false; QRear++; if (QRear==QMax) QRear = 0; QArray[QRear] = newitem; if (QNumItems==0) QFront = 0; QNumItems++; return true; } 59 Queue số nguyên – Lấy phần tử khỏi queue public int DeQueue() { if (IsEmpty()) return -1; int itemout = QArray[QFront]; QFront++; QNumItems ; if (QFront==QMax) QFront = 0; if (QNumItems==0) QFront = QRear = -1; return true; } 60 Queue số nguyên – Xem giá trị đầu public int QueueFront() { if (IsEmpty()) return -1; return QArray[QFront]; } 61 Queue số nguyên – Xem giá trị cuối public int QueueRear() { if (IsEmpty()) return -1; return QArray[QRear]; } 62 Bài tập áp dụng Viết chương trình nhập/ xuất hàng đợi số nguyên (dùng mảng chiều) Cho biết hàng đợi có số lẻ 63 Queue – Ví dụ ứng dụng Quản lý việc thực tác vụ (task) môi trường xử lý song song Hàng đợi in ấn tài liệu Vùng nhớ đệm (buffer) dùng cho bàn phím Quản lý thang máy 64 ... 13 Left-to-right left-to-right +- binary add or subtract 12 left-to-right > shift 11 left-to-right > >= <

Ngày đăng: 09/05/2021, 18:22

Mục lục

  • Slide 1

  • Nội dung

  • Ngăn xếp

  • Ví dụ về Ngăn xếp

  • Khái niệm Stack

  • Thao tác cơ bản trên Stack

  • Thao tác Push vào Stack

  • Thao tác Pop khỏi stack

  • Stack – Sử dụng mảng

  • Ngăn xếp – Sử dụng mảng

  • Ví dụ ngăn xếp chứa số nguyên dương

  • Ngăn xếp số nguyên – Khởi tạo

  • Ngăn xếp số nguyên – Kiểm tra rỗng

  • Stack số nguyên – Kiểm tra đầy

  • Stack số nguyên – Thêm vào stack

  • Stack số nguyên – Lấy phần tử khỏi stack

  • Bài tập

  • Stack – Ứng dụng

  • Stack – Ứng dụng

  • Bài toán tháp HaNoi

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

Tài liệu liên quan