ENQUEUE LÀ GÌ

     
Queue - Hàng đợi làmột cấu tạo dữ liệu dùng làm lưu giữ các đối tượng người dùng theo cơ chếFIFO(viết tắt từ giờ đồng hồ Anh:First In First Out), nghĩa là “vào trước ra trước”.

Bạn đang xem: Enqueue là gì


*

Khác với phòng xếp, hàng hóng là mở ở 2 đầu. Một đầu luôn luôn được sử dụng để chèn dữ liệu vào (hay còn được gọi là sắp vào hàng) và đầu kia được thực hiện để xóa dữ liệu (rời hàng). Kết cấu dữ liệu hàng chờ tuân theo phương thức First-In-First-Out, tức là dữ liệu được nhập vào đầu tiên sẽ được truy vấn đầu tiên.
Trong cấu trúc hàng đợi(queue), ta chỉ hoàn toàn có thể thêm các phần tử vào một đầu của queue(giả sử là cuối), cùng cũng chỉ hoàn toàn có thể xóa thành phần ở đầu còn lại của queue(tạm điện thoại tư vấn là đầu). Như vậy, tại một đầu không thể xảy ra hai hành vi thêm và xóa đồng thời.
Trong cuộc sống thực chúng ta có không ít ví dụ về mặt hàng đợi, chẳng hạn như hàng xe cộ ô tô trên phố một chiều (đặc biệt là khi tắc xe), trong các số đó xe như thế nào vào thứ nhất sẽ thoát ra đầu tiên. Một vài ba ví dụ không giống là xếp hàng học sinh, xếp hàng thiết lập vé, …
hoạt đụng trên kết cấu dữ liệu hàng đợi hoàn toàn có thể liên quan liêu tới vấn đề khởi tạo ra hàng đợi, sử dụng dữ liệu trên hàng hóng và sau đó là xóa dữ liệu khỏi cỗ nhớ.
queue<>: Một mảng một chiều mô phỏng cho hàng đợiarraySize: Số lượng thành phần tối đa rất có thể lưu trữ trong queue<>front: Chỉ số của thành phần ở đang đầu queue. Nó đang là chỉ số của thành phần sẽ bị xóa ngơi nghỉ lần tiếp theorear: Chỉ số của phần tử tiếp theo sẽ được thêm vào thời gian cuối của queue
Nếu hàng hóng chưa đầy, họ sẽ thêm phần tử cần cấp dưỡng cuối(rear)của mặt hàng đợi. Ngược lại, thông tin lỗi.

Xem thêm: Quả La Hán Với Phụ Nữ Mang Thai, Bạn Có Biết: Tác Dụng Của Quả La Hán Với Bà Bầu


Các chúng ta lưu ý,rearlà chỉ số của phần tử sẽ nhận thêm ở lần tiếp theo. Vị đó, thêm chấm dứt rồi ta bắt đầu tăngrearlên 1 đối chọi vị. Giá trịrearcần biến hóa nên được truyền theo tham chiếu.

void Enqueue(int queue<>, int element, int& rear, int arraySize) if(rear == arraySize) // Queue is full printf("OverFlow "); else queue = element; // địa chỉ cửa hàng the element to lớn the back rear++;
Nếu hàng đợi tất cả ít nhất 1 phần tử, bọn họ sẽ thực hiện xóa bỏ thành phần ở đầu của sản phẩm đợi bằng phương pháp tăngfrontlên 1 giá chỉ trị.
Ở đây,frontđang là chỉ số của bộ phận sẽ bị xóa rồi. Cho nên chỉ cần tăng là xong, đó cũng là tại sao ta đề nghị truyền tham sốfrontsử dụng tham chiếu.
void Dequeue(int queue<>, int& front, int rear) if(front == rear) // Queue is empty printf("UnderFlow "); else queue = 0; // Delete the front element front++;
Tới phía trên chắc nhiều người thắc mắc nguyên nhân lại tăng front mà chưa phải là giảm. Chúng ta xem lý giải ở hình sau nhé:

*

*

Bởi vì cấu trúc dữ liệu sản phẩm đợi gia hạn hai bé trỏ dữ liệu: front cùng rear, cho nên vì thế các hoạt động vui chơi của loại cấu trúc dữ liệu này là khá phức tạp khi đối chiếu với kết cấu dữ liệu phòng xếp.

Xem thêm: Làm Cách Nào Để Facebook Hiển Thị Facebook Trên Màn Hình, Đưa Biểu Tượng Facebook Ra Ngoài Màn Hình Desktop


Kiểm tra coi hàng chờ là có đầy không.Nếu hàng chờ là đầy, quá trình bị lỗi và bị thoát.Nếu hàng đợi không đầy, tăng nhỏ trỏ rear để trỏ cho tới vị trí bộ lưu trữ trống tiếp theo.Thêm thành phần dữ liệu vào vị trí nhỏ trỏ rear vẫn trỏ cho tới trong mặt hàng đợi.Trả về success.