NGHĨA CỦA TỪ QUEUE

  -  

1. Hàng ngóng (queue) là gì?

Hàng ngóng (queue) là một cấu trúc dữ liệu chuyển động theo phương pháp FIFO (First In First Out), tạm dịch là “vào trước ra trước”. Gồm nghĩa là phần tử nào có thêm hàng ngóng trước thì sẽ được kéo ra trước.

Bạn đang xem: Nghĩa của từ queue


*

Có thể tưởng tượng hàng hóng như một đoàn bạn xếp hàng download vé. Bạn nào xếp mặt hàng trước sẽ được mua vé trước và thoát khỏi hàng nhằm nhường vị trí cho tất cả những người xếp mặt hàng ngay phía sau.Có thể xem hàng đợi (queue) là 1 trong những kiểu list có 2 phép toán đặc thù là:Bổ sung một trong những phần tử vào cuối danh sách (rear)Loại bỏ một trong những phần tử ngơi nghỉ đầu danh sách (front)Một số làm việc thông dụng bên trên queue như:enqueue(): thêm một trong những phần tử vào queue.dequeue(): nhiều loại bỏ một phần tử thoát khỏi queue.isFull(): kiểm soát queue bao gồm đầy chưa. Số lượng bộ phận trong queue do người tiêu dùng quy định. Tùy ngôi trường hợp bọn họ mới cần sử dụng hàm isFull().

Xem thêm: Những Pha Xử Lý Hay Của Lee Sin 2016, Những Pha Biễu Diễn Leesin Chất Ngất ✔

isEmpty(): khám nghiệm queue có rỗng giỏi không.Trong lập trình, tất cả 2 cách thường dùng làm xây dựng queue là áp dụng mảng (array) với danh sách liên kết (linked list).

2. Thiết kế hàng đợi bằng mảng

Khi thiết kế queue bởi mảng thì họ lưu ý một số vấn đề sau:Cần bao gồm hai chỉ số front với rear để lưu chỉ số phần tử đầu và chỉ số thành phần cuối vào queue. Khởi sinh sản queue rỗng thì front = 0 và rear = -1.Để thêm 1 phần tử vào queue, ta tăng rear lên 1 và chuyển giá trị đó vào bộ phận thứ rear vào mảng.Để nhiều loại bỏ một phần tử khỏi queue, ta tăng front lên 1.Chỉ những bộ phận của mảng từ địa điểm front cho tới rear bắt đầu được coi là các phần tử trong queue.Khi front > rear thì queue sẽ rỗng.Khi rear tăng lên hết khoảng chỉ số của mảng thì mảng vẫn đầy, quan yếu thêm thành phần vào nữa.#include using namespace std;#define max 10000int Queue;int front, rear;void QueueInit()front = 0;rear = -1;void enqueue(int V){if(rear >= max-1){cout rear){cout rear)coutKết quảElements in Queue:5 21 10 99 101Dequeue fromt Queue:5 21Print Queue after dequeueElements in Queue:10 99 101Nhận xét:Khi sử dụng mảng để setup queue, chỉ số rear cùng front chỉ tạo thêm chứ không bớt đi, kể cả khi lấy các thành phần ra khỏi sản phẩm đợi. Chỉ có các bộ phận từ địa chỉ front tới rear là trực thuộc queue. Các bộ phận từ địa chỉ 0 tới front-1 bị lãng phí.Hơn nữa, nếu chỉ số rear tăng lên vượt vượt số lượng phần tử cho phép trong mảng thì queue cũng bị tràn, tất yêu thêm thành phần vào queue nữa.Chúng ta rất có thể sử dụng danh sách liên kết để cài đặt queue nhằm khắc phục các khuyết điểm trên.

Xem thêm: Top 10 Game Cày Cuốc Luyện Level Cho Pc Và Mobile, Game Online Cày Cuốc Pc

3. Thi công hàng đợi bằng list liên kết

Khi thực hiện danh sách links đơn để kiến thiết queue, nếu như muốn thêm 1 phần tử vào queue thì ta thêm vào cuối danh sách. Nếu như muốn lấy một phần tử thoát khỏi queue thì ta diệt phần tử đầu danh sách.
#include using namespace std;struct nodeint data;node *next;;node * front;node *rear;void QueueInit()front = NULL;rear = NULL;void enqueue(int V)node *p;p = new node;p->data = V;p->next = NULL;if (front!=NULL)rear->next = p;elsefront = p;rear = p;int dequeue()if (front == NULL)coutdata;node *p = front->next;delete front;front = p;if(front == NULL)rear = NULL;return res;//print Queuevoid printQueue()node *p;p = front;coutdatanext;int main(){//init QueueQueueInit();//enqueue khổng lồ Queueenqueue(5);enqueue(21);enqueue(10);enqueue(99);enqueue(101);//print QueueprintQueue();//dequeue from QueuecoutKết quảElements in Queue:5 21 10 99 101Dequeue fromt Queue:5 21Print Queue after dequeueElements in Queue:10 99 101
Bài trước và bài bác sau trong môn học>" data-wpel-link="internal">Cấu trúc dữ liệu dạng cây là gì? Đặc điểm của cây nhị phân (Binary Tree) >>