1. Trang chủ
  2. » Công Nghệ Thông Tin

CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI pdf

19 785 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 280,5 KB

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

Nội dung

KHÁI NIỆM Hàng đợi là một danh sách tuyến tính, trong đó:  Việc 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  Việc loại bỏ một phần tử ra khỏi hàng đợi

Trang 1

HÀNG ĐỢI

QUEUE

Trang 2

KHÁI NIỆM

Hàng đợi là một danh sách tuyến tính, trong đó:

 Việc 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

 Việc loại bỏ một phần tử ra khỏi hàng đợi được thực hiện ở đầu kia gọi là đầu hàng.

Danh sách kiểu hàng đợi còn gọi là danh sách FIFO – First In First Out.

Trang 3

KHÁI NIỆM

A B C D E F

Hình vẽ biểu diễn hàng đợi

Trang 4

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

Giả sử các phần tử của HĐ có kiểu dữ liệu là Item, độ dài của HĐ

là N

HĐ được lưu trong BNMT bởi mảng 1 chiều (lưu trữ kế tiếp).

Mỗi phần tử của mảng lưu một phần tử của hàng đợi

Hàng đợi được biểu diễn là một cấu trúc có 3 thành phần:

Thành phần thứ nhất là mảng E lưu các phần tử của HĐ

Thành phần thứ hai là biến front lưu chỉ số của phần tử đầu hàng

Thành phần thứ ba là biến rear lưu chỉ số của phần tử cuối hàng

Cấu trúc dữ liệu như sau:

Trang 5

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

A B C D E F

E

Mảng lưu trữ hàng đợi

Trang 6

BIỂU DIỄN CẤU TRÚC DỮ LIỆU

#define Max N

//Định nghĩa kiểu Item

struct Queue {

int front, rear;

Item E[Max];

};

Queue Q;

/* Q.rear = -1 -> hàng đợi rỗng,

Q.rear = Max-1 -> Hàng đợi đầy */

Trang 7

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

void Initialize (Queue &Q) {

Q.front = 0;

Q.rear = -1;

}

1 Khởi tạo hàng đợi rỗng

int Empty (Queue Q) {

return (Q.rear == -1);

}

2 Kiểm tra hàng đợi rỗng

Trang 8

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

Max=10

E

Biểu diễn hàng đợi rỗng 0

Trang 9

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

3 Kiểm tra hàng đợi đầy

int Full (Queue Q) {

reurn (Q.rear == Max-1);

}

A B C D E F G H

10 = Max

E

Biểu diễn hàng đợi đầy 0

Trang 10

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

A B C D E F

10 = Max

E

Mảng lưu trữ hàng đợi

4 Bổ sung một phần tử vào cuối hàng đợi

G

0

X

Trang 11

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

A B C D E F

10 = Max

E

Mảng lưu trữ hàng đợi

4 Bổ sung một phần tử vào cuối hàng đợi

G

0

X

Trang 12

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

A B C D E F G

10 = Max

E

Mảng lưu trữ hàng đợi

4 Bổ sung một phần tử vào cuối hàng đợi

0

Trang 13

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

int AddQ (Queue &Q, Item X) {

If (Full(Q))

return 0;

else

{

Q.rear++;

Q.E [ Q.rear ] = X;

return 1;

} }

Hàm AddQ thực hiện bổ sung một phần tử vào cuối hàng, hàm trả về 1 nếu bổ sung thành công, ngược lại hàm trả về 0

4 Bổ sung một phần tử vào cuối hàng đợi

Trang 14

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

A B C D E F

10 = Max

E

Mảng lưu trữ hàng đợi

5 Lấy ra một phần tử ở đầu hàng đợi

0

X

Trang 15

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

B C D E F

10 = Max

E

Mảng lưu trữ hàng đợi

5 Lấy ra một phần tử ở đầu hàng đợi

Trường hợp hàng đợi có nhiều hơn một phần tử

A

0

X

Trang 16

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

B

10 = Max

front = 3

rear = 3 E

5 Lấy ra một phần tử ở đầu hàng đợi

Trường hợp hàng đợi có 1 phần tử

0

X

Trang 17

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

10 = Max

E

Hàng đợi rỗng

5 Lấy ra một phần tử ở đầu hàng đợi

Trường hợp hàng đợi có 1 phần tử

B

0

X

Trang 18

CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI

int DeleteQ (Queue &Q, Item &X)

{

if (Empty(Q)) return 0;

else

{

X = Q.E [ Q.front ]

if (Q.front == Q.rear)

Initialize (Q);

else

Q.front = Q.front + 1;

return 1;

}

}

5 Lấy ra một phần tử ở đầu hàng đợi

Trang 19

ỨNG DỤNG

Viết chương trình:

 Nhập một chuỗi ký tự, sử dụng hàng đợi, việc nhập kết thúc khi gõ Enter

 In chuỗi ra màn hình

 Đếm các nguyên âm trong chuỗi

Ngày đăng: 29/03/2014, 00:20

HÌNH ẢNH LIÊN QUAN

Hình vẽ biểu diễn hàng đợi - CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI pdf
Hình v ẽ biểu diễn hàng đợi (Trang 3)

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