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

Đ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

Nội dung

HÀNG ĐỢI QUEUE 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. KHÁI NIỆM A B C D E F Đầu hàng Cuối hàng Loại bỏ Bổ sung Hình vẽ biểu diễn hàng đợi 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: BIỂU DIỄN CẤU TRÚC DỮ LIỆU A B C D E F 0 1 2 3 4 5 6 7 8 9 = Max-1 front = 2 rear = 7 E Mảng lưu trữ hàng đợi 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 */ 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 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 1 2 3 4 5 6 7 8 9 Max=10 front = 0 rear = -1 E Biểu diễn hàng đợi rỗng 0 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 1 2 3 4 5 6 7 8 9 10 = Max front = 2 rear = 9 E Biểu diễn hàng đợi đầy 0 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI A B C D E F 1 2 3 4 5 6 7 8 9 10 = Max front = 2 rear = 7 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 [...]... Mảng lưu trữ hàng đợi 9 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 5 Lấy ra một phần tử ở đầu hàng đợi   0 E Trường hợp hàng đợi có 1 phần tử 1 2 3 4 5 10 = Max 6 7 B rear = 3 X front = 3 Mảng lưu trữ hàng đợi 8 9 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 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ử 10 = Max 0 1 2 3 4 5 6 7 8 9 E B front = 0 rear = -1 X Hàng đợi rỗng CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI  5 Lấy...CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 4 Bổ sung một phần tử vào cuối hàng đợi  10 = Max 0 E 1 2 3 4 5 6 7 A B C D E 8 9 F X front = 2 Mảng lưu trữ hàng đợi rear = 8 G CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI  4 Bổ sung một phần tử vào cuối hàng đợi 0 E 1 2 3 4 5 6 A B C D E 7 F front = 2 Mảng lưu trữ hàng đợi 8 10 = Max 9 G rear = 8 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI  4 Bổ sung một phần tử vào cuối hàng đợi int AddQ(Queue &Q,... 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 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 5 Lấy ra một phần tử ở đầu hàng đợi   0 E Trường hợp hàng đợi có nhiều hơn 1 phần tử 1 2 3 4 5 6 7 A B C D E 10 = Max 8 F X front = 2 rear = 7 Mảng lưu trữ hàng đợi 9 CÁC PHÉP TOÁN TRÊN 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... Lấy ra một phần tử ở đầu 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; } } Hàm DeleteQ thực hiện lấy ra một phần tử ở đầu hàng, hàm trả về 1 nếu lấy ra thành công, ngược lại hàm trả về 0 Ứ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 . phần tử cuối hàng  Cấu trúc dữ liệu như sau: BIỂU DIỄN CẤU TRÚC DỮ LIỆU A B C D E F 0 1 2 3 4 5 6 7 8 9 = Max-1 front = 2 rear = 7 E Mảng lưu trữ hàng đợi BIỂU DIỄN CẤU TRÚC DỮ LIỆU #define. Q.rear = -1 -& gt; hàng đợi rỗng, Q.rear = Max-1 -& gt; Hàng đợi đầy */ 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. == -1 ); }  2. Kiểm tra hàng đợi rỗng CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI 1 2 3 4 5 6 7 8 9 Max=10 front = 0 rear = -1 E Biểu diễn hàng đợi rỗng 0 CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI  3. Kiểm tra hàng đợi

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w