1. Trang chủ
  2. » Sinh học

Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 13: Hàng đợi - Queues

10 6 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 611,21 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

m ột danh sách (cuối hàng đợi) và việc lấy ra một phần tử được th ực hiện ở cuối danh sách (đầu hàng)..  Hàng đợi còn được gọi là danh sách FIFO (First In First Out).[r]

Trang 1

Gi ảng viên: TS Ngo Huu Phuc

Tel: 0438 326 077 Mob: 098 5696 580 Email: ngohuuphuc76@gmail.com

Bài 13 Hàng đợi - Queues

Trang 2

ội dung:

13.1 Khái ni ệm về hàng đợi.

13.2 Xây d ựng và sử dụng Queue.

13.3 Ví d ụ về hàng đợi.

Tham kh ảo:

1 Data structures and Algorithms Stacks.htm, Kyle Loudon Mastering

Algorithms,

2 Chapter 6 Stacks and Queues, Elliz Horowitz – Fundamentals of Data

Structures.

3 Chapter 3 Stacks and Queues, Deshpande Kakle – C and Data Structures.

ảng TS Nguyễn Nam Hồng

Trang 4

sách, trong đó việc thêm một phần tử được thực hiện ở đầu

một danh sách (cuối hàng đợi) và việc lấy ra một phần tử được

thực hiện ở cuối danh sách (đầu hàng)

 Hàng đợi còn được gọi là danh sách FIFO (First In First Out)

Trang 5

 Đối với hàng đợi, số lượng ứng dụng có nhiều hơn cả ngăn

xếp

 Ví dụ như máy tính thực hiện nhiệm vụ, có nhiều hàng đợi

được sử dụng:

 hàng đợi máy in,

 vi ệc truy xuất đĩa,

 s ử dụng CPU.

 chuy ển đổi từ Infix sang Prefix.

 Phần tử đầu hàng đợi được phục vụ trước, phần tử này thường

gọi là front hay head Phần tử mới thêm vào được gọi là rear hay tail.

Trang 6

Một hàng đợi các phần tử kiểu T là một chuỗi nối tiếp các phần

tử của T và kèm theo một số tác vụ sau:

1 T ạo mới một đối tượng hàng rỗng.

2 Thêm m ột phần tử mới vào hàng, giả sử hàng đợi chưa đầy

(ph ần tử dữ liệu mới luôn được thêm vào cuối hàng).

3 Lo ại một phần tử ra khỏi hàng, giả sử hàng chưa rỗng (phần tử

b ị loại là phần tử tại đầu hàng, thường là phần tử vừa được xử lý xong).

4 Xem ph ần tử tại đầu hàng (phần tử sắp được xử lý).

Trang 7

Ho ạt động của hàng đợi

Trang 8

Thành ph ần dữ liệu cho Queue:

MaxEntry: Kích thước của Queue.

QueueEntry: Kiểu dữ liệu dành cho mỗi phần tử trong Queue.

M ột số phương thức cơ bản của Queue:

 QueueClassL();

 int isEmpty();

 int isFull();

 int Dequeue(QueueEntry *value);

 int Enqueue(QueueEntry value);

 int Peek(QueueEntry *value);

 void makeEmpty();

Trang 9

Khai báo l ớp Queue (dạng tuyến tính):

template< class QueueEntry> // L ớp mẫu cho kiểu dữ liệu của Queue

public :

QueueClassL(); // Hàm t ạo của lớp, khởi tạo thông tin cho Queue

int isEmpty(); // Queue r ỗng → 1, ngược lại → 0

int isFull(); // Queue đầy → 1, ngược lại → 0

int Dequeue(QueueEntry *value); // L ấy 1 phần tử Queue

int Enqueue(QueueEntry value); // Thêm 1 ph ần tử vào Queue

int Peek(QueueEntry *value); // Xem giá tr ị tại đầu của Queue

void makeEmpty(); // Làm r ỗng Queue

private :

int front, rear; // front: đầu Queue, rear: cuối Queue

QueueEntry entry[MaxEntry]; // M ảng lưu thông tin của Queue

Trang 10

template< class QueueEntry>

QueueClassL<QueueEntry>

::QueueClassL( void ) {

front=rear=-1;

}

template< class QueueEntry>

int QueueClassL<QueueEntry>

::isEmpty() {

if (front==rear)

return 1;

else return 0;

}

Ngày đăng: 09/03/2021, 07:17

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w