CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI
Số trang: 19
Loại file: ppt
Dung lượng: 280.50 KB
Lượt xem: 19
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI HÀNG ĐỢI QUEUE KHÁI NIỆM đợi là một danh sách tuyến tính, Hàng 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 ABCDEF Bổ sung Loại bỏ Đầu hàng Cuối hàng 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 0 1 2 3 4 5 6 7 8 9 = Max-1 A B C D E F E front = 2 rear = 7 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 1. Khởi tạo hàng đợi rỗng void Initialize (Queue &Q) { Q.front = 0; Q.rear = -1; } 2. Kiểm tra hàng đợi rỗng int Empty (Queue Q) { return (Q.rear == -1); } CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI Max=10 0 1 2 3 4 5 6 7 8 9 E front = 0 rear = -1 Biểu diễn hàng đợi rỗng 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); } 10 = Max 0 1 2 3 4 5 6 7 8 9 A B C D E F G H E front = 2 rear = 9 Biểu diễn hàng đợi đầ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 1 2 3 4 5 6 7 8 9 A B C D E F E X G front = 2 rear = 7 Mảng lưu trữ hàng đợi 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 1 2 3 4 5 6 7 8 9 A B C D E F E X G front = 2 rear = 8 Mảng lưu trữ hàng đợi 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 1 2 3 4 5 6 7 8 9 A B C D E F G E front = 2 rear = 8 Mảng lưu trữ hàng đợi 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, 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 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 1 phần tử 10 = Max 0 1 2 3 4 5 6 7 8 9 A B C D E F E X front = 2 rear = 7 Mảng lưu trữ hàng đợi 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 tử 10 = Max 0 1 2 3 4 5 6 7 8 9 B C D E F E X A front = 3 rear = 7 Mảng lưu trữ hàng đợi 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 B E rear = 3 X ...
Nội dung trích xuất từ tài liệu:
CÂU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - HÀNG ĐỢI HÀNG ĐỢI QUEUE KHÁI NIỆM đợi là một danh sách tuyến tính, Hàng 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 ABCDEF Bổ sung Loại bỏ Đầu hàng Cuối hàng 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 0 1 2 3 4 5 6 7 8 9 = Max-1 A B C D E F E front = 2 rear = 7 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 1. Khởi tạo hàng đợi rỗng void Initialize (Queue &Q) { Q.front = 0; Q.rear = -1; } 2. Kiểm tra hàng đợi rỗng int Empty (Queue Q) { return (Q.rear == -1); } CÁC PHÉP TOÁN TRÊN HÀNG ĐỢI Max=10 0 1 2 3 4 5 6 7 8 9 E front = 0 rear = -1 Biểu diễn hàng đợi rỗng 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); } 10 = Max 0 1 2 3 4 5 6 7 8 9 A B C D E F G H E front = 2 rear = 9 Biểu diễn hàng đợi đầ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 1 2 3 4 5 6 7 8 9 A B C D E F E X G front = 2 rear = 7 Mảng lưu trữ hàng đợi 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 1 2 3 4 5 6 7 8 9 A B C D E F E X G front = 2 rear = 8 Mảng lưu trữ hàng đợi 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 1 2 3 4 5 6 7 8 9 A B C D E F G E front = 2 rear = 8 Mảng lưu trữ hàng đợi 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, 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 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 1 phần tử 10 = Max 0 1 2 3 4 5 6 7 8 9 A B C D E F E X front = 2 rear = 7 Mảng lưu trữ hàng đợi 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 tử 10 = Max 0 1 2 3 4 5 6 7 8 9 B C D E F E X A front = 3 rear = 7 Mảng lưu trữ hàng đợi 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 B E rear = 3 X ...
Tìm kiếm theo từ khóa liên quan:
cấu trúc dữ liệu giải thuật danh sách đệ quy giải thuật đệ quy dữ liệu máy tính quản lý dữ liệuGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 306 0 0 -
Đáp án đề thi học kỳ 2 môn cơ sở dữ liệu
3 trang 297 1 0 -
PHÂN TÍCH THIẾT KẾ HỆ THỐNG XÂY DỰNG HỆ THỐNG ĐẶT VÉ TÀU ONLINE
43 trang 280 2 0 -
8 trang 253 0 0
-
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 149 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 147 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 139 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 137 0 0 -
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 107 0 0 -
Giáo trình: Hệ quản trị cơ sở dữ liệu - Nguyễn Trần Quốc Vinh
217 trang 78 0 0