intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

BÀI GIẢNG: HÀNG ĐỢI

Chia sẻ: Kieu Quang Vinh | Ngày: | Loại File: PPT | Số trang:52

197
lượt xem
69
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Hàng đợi cải tiến được biểu diễn là một bản ghi gồm có 2 trường : Trường thứ nhất : là mảng một chiều có kích thước đủ lớn để lưu các phần tử của hàng đợi. Trường thứ hai là số nguyên dùng để lưu chỉ số phần tử cuối hàng đợi trong mảng các phần tử.

Chủ đề:
Lưu

Nội dung Text: BÀI GIẢNG: HÀNG ĐỢI

  1. HÀNG ĐỢI QUEUE
  2. 3.5 CẤU TRÚC HÀNG ĐỢI Khái niệm, đặc điểm  Lưu trữ kế tiếp của hàng đợi  Hàng đợi móc nối  2/52
  3. 3.5.1 Khái niệm, đặc điểm của hàng đợi Khái niệm Hàng đợi là một danh sách tuyến tính.  Phép toán bổ sung một phần tử vào hàng đợi  được thực hiện ở một đầu gọi là cuối hàng. Phép toán loại bỏ một phần tử khỏi hàng đợi được thực hiện ở đầu kia gọi là đầu hàng. 3/52
  4. 3.5.1 Khái niệm, đặc điểm của hàng đợi Phần tử đưa vào hàng đợi trước sẽ được lấy ra xử lí  trước, phần tử đưa vào hàng đợi sau sẽ được lấy ra xử lí sau. Được gọi là danh sách FIFO (First - In - First – Out)  4/52
  5. 3.5.1 Khái niệm, đặc điểm của hàng đợi ABCDEF Bổ sung Loại bỏ Đầu hàng Cuối hàng Hình vẽ biểu diễn hàng đợi 5/52
  6. 3.5.2 Lưu trữ kế tiếp của hàng đợi Định nghĩa và khai báo cấu trúc dữ liệu  Định nghĩa các phép toán và chương trình th ực hiện các  phép toán cơ bản 6/52
  7. Định nghĩa và khai báo cấu trúc dữ liệu đợi được biểu diễn là một bản ghi gồm  Hàng có 3 trường : Trường thứ nhất : là mảng một chiều có kích  thước đủ lớn để lưu các phần tử của hàng đợi Trường thứ hai và thứ ba là số nguyên để lưu  chỉ số của phần tử đầu hàng đợi và chỉ số của phần tử cuối hàng đợi trong mảng các phần tử 7/52
  8. Định nghĩa và khai báo cấu trúc dữ liệu Khai báo cấu trúc :  const max = ; struct queue { ptu[max] ; int front, rear ; }q; 8/52
  9. Định nghĩa và khai báo cấu trúc dữ liệu 0 1 2 3 4 5 6 7 8 max=10 A B C D E F q front = 2 rear = 7 Mảng lưu trữ hàng đợi 9/52
  10. Các phép toán cơ bản Khởi tạo hàng đợi rỗng : creat(q)  Kiểm tra hàng đợi rỗng : empty(q)  Kiểm tra hàng đợi đầy : full(q)  Chèn phần tử x vào cuối hàng đợi : add(x,q)  Loại phần tử đầu hàng đợi gán cho x : del(q,x)  10/52
  11. Các phép toán cơ bản Khởi tạo hàng đợi rỗng  void creat(queue &q) { q.front = 0; q.rear = -1; } 11/52
  12. Các phép toán cơ bản max=10 0 1 2 3 4 5 6 7 8 9 q front = 0 rear = -1 Biểu diễn hàng đợi rỗng 12/52
  13. Các phép toán cơ bản Kiểm tra hàng đợi rỗng  int empty(queue q) { return q.front > q.rear ; } 13/52
  14. Các phép toán cơ bản Kiểm tra hàng đợi đầy  max=10 0 1 2 3 4 5 6 7 8 9 A B C D E F G H q front = 2 rear = 9 Biểu diễn hàng đợi đầy 14/52
  15. Các phép toán cơ bản Kiểm tra hàng đợi đầy int full(queue q) { return q.rear == max-1 ; } 15/52
  16. Các phép toán cơ bản Chèn phần tử x vào cuối hàng đợi  max=10 0 1 2 3 4 5 6 7 8 9 A B C D E F q X front = 2 rear = 7 Mảng lưu trữ hàng đợi 16/52
  17. Các phép toán cơ bản Chèn phần tử x vào cuối hàng đợi  10 = Max 0 1 2 3 4 5 6 7 8 9 A B C D E F X q front = 2 rear = 8 Mảng lưu trữ hàng đợi 17/52
  18. Các phép toán cơ bản Chèn phần tử x vào cuối hàng đợi add( x, queue &q) void { if (!full(q)) q.ptu[++q.rear]=x; } 18/52
  19. Các phép toán cơ bản Loại phần tử ở đầu hàng đợi gán cho x  max=10 0 1 2 3 4 5 6 7 8 9 A B C D E F q front = 2 rear = 7 x Mảng lưu trữ hàng đợi 19/52
  20. Các phép toán cơ bản Loại phần tử ở đầu hàng đợi gán cho x  max=10 0 1 2 3 4 5 6 7 8 9 B C D E F q A front = 3 rear = 7 x Mảng lưu trữ hàng đợi 20/52
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2