✨Hàng đợi

Hàng đợi

Hàng đợi (tiếng Anh: queue) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế FIFO (viết tắt từ tiếng Anh: First In First Out), nghĩa là "vào trước ra trước"

Trong hàng đợi, các đối tượng có thể được thêm vào hàng đợi bất kỳ lúc nào, nhưng chỉ có đối tượng thêm vào đầu tiên mới được phép lấy ra khỏi hàng đợi. Thao tác thêm vào và lấy một đối tượng ra khỏi hàng đợi được gọi lần lượt là "enqueue" và "dequeue". Việc thêm một đối tượng luôn diễn ra ở cuối hàng đợi và một phần tử luôn được lấy ra từ đầu hàng đợi.

Trong tin học, cấu trúc dữ liệu hàng đợi có nhiều ứng dụng: khử đệ quy, tổ chức lưu vết các quá trình tìm kiếm theo chiều rộng và quay lui, vét cạn, tổ chức quản lý và phân phối tiến trình trong các hệ điều hành, tổ chức bộ đệm bàn phím.

Cấu trúc dữ liệu hàng đợi có thể định nghĩa như sau: Hàng đợi là một cấu trúc dữ liệu trừu tượng (ADT) tuyến tính. Tương tự như ngăn xếp, hàng đợi hỗ trợ các thao tác:

  • EnQueue(o): thêm đối tượng o vào cuối hàng đợi.
  • DeQueue(): lấy đối tượng ở đầu queue ra khỏi hàng đợi và trả về giá trị của nó. Nếu hàng đợi rỗng thì lỗi sẽ xảy ra.
  • IsEmpty(): kiểm tra xem hàng đợi có rỗng không.
  • Front(): trả về giá trị của phần tử nằm ở đầu hàng đợi mà không hủy nó. Nếu hàng đợi rỗng thì lỗi sẽ xảy ra.

Các thao tác thêm, trích và huỷ một phần tử phải được thực hiện ở hai phía khác nhau của hàng đợi, do đó hoạt động của hàng đợi được thực hiện theo nguyên tắc FIFO. Cũng như ngăn xếp, cấu trúc mảng một chiều hoặc cấu trúc danh sách liên kết có thể dùng để biểu diễn cấu trúc hàng đợi.

Cài đặt hàng đợi

Có 2 cách cài đặt hàng đợi:

  • Dùng mảng.

  • Dùng danh sách liên kết.

  1. Cài đặt hàng đợi sử dụng mảng trong C (Implementation Queue using Array)

a) Mảng bình thường:

include <stdio.h>

include <stdlib.h>

define MAX 20

typedef <Element's type> El_type; typedef struct Queue { El_type el[MAX]; int front; int rear; } Queue;

Các thao tác:

  • Khởi tạo hàng đợi(Initialize Queue) Eltype initQ(Queue q) { q = (Queue *)malloc(sizeof(Queue)); if(q!= NULL) { q->front = -1; q->rear = -1; } return q; }

  • Kiểm tra xem hàng đợi có rỗng không? (Check if a queue is empty) int isEmpty(Queue *q) { return (q->front == -1); }

  • Kiểm tra xem hàng đợi có đầy không? (Check if a queue is full) int isFull(Queue q) { return (q.rear-q.front+1 == MAX); }

  • Đưa thêm một phần tử vào hàng đợi void enQ(El_type new_el, Queue *q) { if(!isFull(q)) { if(isEmpty(q)) q->front = q->front+1; q->rear = q->rear+1; q->el[q->rear] = new_el; } else printf("Queue is full.\n"); }

  • Xóa một phần tử khỏi hàng đợi void deQ(Queue *q) { if(!isEmpty(q)) q->front = q->front+1;
    else printf("Queue is empty.\n"); }

Nhược điểm:

  • Qua mỗi lần xóa (deQ): phần sử dụng được của mảng sẽ giảm đi (do front tăng lên).

Cách khắc phục:

  • Sử dụng mảng vòng (Circular Array).

b) Mảng vòng: tương ta có:

  • Khởi tạo hàng đợi(Initialize Queue) Eltype initQ(Queue q) { q = (Queue *)malloc(sizeof(Queue)); if(q!= NULL) { q->front = -1; q->rear = -1; } return q; }

  • Kiểm tra xem hàng đợi có rỗng không? (Check if a queue is empty)

int empty_queue(queue q) { return q.front==-1; }

  • Kiểm tra xem hàng đợi có đầy không? (Check if a queue is full)

int full_queue(queue q) { return (q.rear-q.front+1)%maxlength==0; }

  • Đưa thêm một phần tử vào hàng đợi

void enqueue(elementtype x,queue q) { if(!full_queue(q)) { if(empty_queue(*q))q->front=0; q->rear=(q->rear+1)%maxlength; q->data[q->rear]=x;
} else printf("Hang Day!"); }

  • Xóa một phần tử khỏi hàng đợi

void dequeue(queue q) { if(!empty_queue(q)) { if(q->front==q->rear)makenull_queue(q); else q->front=(q->front+1)%maxlength; } else printf("Hang rong!"); }

Nhược điểm:

  • Mặc dù phương pháp sử dụng mảng vòng có thể tận dùng toàn bộ các mảng đã được cấp pháp ban đầu nhưng khi mảng đầy thì không thể thêm phần tử vào hàng được nữa. Cách khắc phục:

  • Sử dụng Danh sách liên kết.

  1. Cài hàng đợi sử dụng Danh Sách Liên Kết: (Implementation Queue using List Point)

Khai báo cài đặt hàng bằng con trỏ

include <stdio.h>

include <conio.h>

include <malloc.h>

typedef int elementtype; typedef struct node{ elementtype data; node next; }; typedef node position; typedef struct queue{ position front,rear; };

Các thao tác:

  • Khởi tạo hàng đợi(Initialize Queue)

void makenull_queue(queue q) { q->front=(node)malloc(sizeof(node)); q->front->next=NULL; q->rear=q->front; }

  • Kiểm tra xem hàng đợi có rỗng không? (Check if a queue is empty)

int empty_queue(queue q) { return (q.front==q.rear); }

  • Kiểm tra hàng đợi có đầy không (ở đây không có hàm này vì danh sách liên kết làm sao đầy được ^^!)

  • Đưa thêm một phần tử vào hàng đợi

void enqueue(elementtype x, queue q) { q->rear->next=(node)malloc(sizeof(node)); q->rear=q->rear->next; q->rear->data=x; q->rear->next=NULL; }

  • Xóa một phần tử khỏi hàng đợi

void dequeue(queue *q) { position t; t=q->front; q->front=q->front->next; free(t); }

Ưu điểm:

  • khắc phục được tình trạng đầy của việc sử dụng mảng để cài đặt queue.

Ứng dụng của hàng đợi

Hàng đợi có thể được sử dụng trong một số bài toán:

  • Sản xuất và tiêu thụ (ứng dụng trong các hệ điều hành song song).
  • Bộ đệm (ví dụ: Nhấn phím -> Bộ đệm -> CPU xử lý).
  • Xử lý các lệnh trong máy tính (ứng dụng trong hệ điều hành, trình biên dịch), hàng đợi các tiến trình chờ được xử lý.
👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
**Hang Dơi** là tên phổ biến đặt cho nhiều hang ở Việt Nam. Tên hình thành do có dơi đến sống hoặc từng sống trong hang đó. # **Hang Dơi Thanh Thủy** ở xã Thanh
**Hang Dơi**, còn gọi là **Động Sơn Mộc Hương**, gọi theo tiếng Thái là **Thẩm Kia** hoặc **Thẳm Kia** (Hang Dơi), là một hang trong dãy núi đá vôi ở phía bắc thị trấn Mộc
**Hang dơi Kilim** nằm ở Langkawi, Kedah, Malaysia là một phần của công viên địa chất. Các hang động nằm ở chân đồi của rừng ngập mặn Kilim bao quanh lối vào và đối diện
**Hang Dơi Phú Quốc** là hang dơi ở vùng đất xã Dương Tơ, thành phố Phú Quốc, tỉnh Kiên Giang, Việt Nam. Hang thuộc Khu du lịch Suối Tranh, nằm trên đầu nguồn của Suối
**Hang Dơi Bắc Sơn** hay còn được người dân bản địa gọi với cái tên quen thuộc là **Hang Dơi Vũ Lễ** là hang dơi ở xã Vũ Lễ, huyện Bắc Sơn, tỉnh Lạng Sơn,
**Hang Dơi Phúc Yên** hay **Hang Dơi Ngọc Thanh** là hang dơi ở _thôn Đồng Chằm_ xã Ngọc Thanh thành phố Phúc Yên tỉnh Vĩnh Phúc, Việt Nam. Hang thuộc Khu du lịch hồ Đại
**Thác Hang Dơi** là thác trên _suối Đăk Lơ Pe_ tại vùng đất thị trấn Kbang huyện Kbang tỉnh Gia Lai, Việt Nam. Thác ở cách trung tâm hành chính thị trấn Kbang cỡ 5 km
**Hàng đợi** (tiếng Anh: _queue_) là một cấu trúc dữ liệu dùng để chứa các đối tượng làm việc theo cơ chế **FIFO** (viết tắt từ tiếng Anh: _First In First Out_), nghĩa là "vào
1 CHAI NƯỚC HOA NỮ CHÍNH HÃNG ĐÔI CHÂN DÀI QUYẾN RŨ, LƯU HƯƠNG 24H - ƯỚC HOA NỮ YANTAO PERFUME COLLECTION SIÊU QUYẾN RŨ LƯU HƯƠNG 24H❌Cam kết sản phẩm giống hình,VUI LÒNG CHAT
1 CHAI NƯỚC HOA NỮ CHÍNH HÃNG ĐÔI CHÂN DÀI QUYẾN RŨ, LƯU HƯƠNG 24H - ƯỚC HOA NỮ YANTAO PERFUME COLLECTION SIÊU QUYẾN RŨ LƯU HƯƠNG 24H❌Cam kết sản phẩm giống hình,VUI LÒNG CHAT
thumb|Hàng tồn kho linh kiện điện tử **Hàng tồn kho**, hay **hàng lưu kho** (tiếng Anh - Anh: **stock**; tiếng Anh - Mỹ: **inventory** ), là danh mục nguyên vật liệu và sản phẩm hoặc
**Bán hàng** là hoạt động liên quan đến việc bán một lượng hàng hóa hoặc dịch vụ trong một khoảng thời gian định trước. Người bán hoặc nhà cung cấp hàng hóa và dịch vụ
thumb|Bên trong một cửa hàng tiện lợi [[7-Eleven của Nhật Bản]] thumb|Một cửa hàng [[Bodega (store)|bodega tiêu biểu tại New York City]] **Cửa hàng tiện lợi** hay **Cửa hàng tiện ích** là một cửa hàng
right|thumb|Trang thứ ba và trang cuối cùng của văn bản [[đầu hàng vô điều kiện được ký tại Berlin ngày 9 tháng 5 năm 1945]] **Văn kiện Đầu hàng của Đức Quốc xã** (; ;
**Trải nghiệm khách hàng (Customer experience)** bắt nguồn từ một tập hợp các tương tác giữa khách hàng và sản phẩm, doanh nghiệp hoặc một phần của doanh nghiệp. Trải nghiệm này hoàn toàn mang
Nhắc đến đồ đôi chắc hẳn áo đôi là thứ được các cặp đôi lựa chọn và yêu thích nhiều nhất. Bởi áo đôi không chỉ thể hiện tình cảm mà nó còn là một
Nhắc đến đồ đôi chắc hẳn áo đôi là thứ được các cặp đôi lựa chọn và yêu thích nhiều nhất. Bởi áo đôi không chỉ thể hiện tình cảm mà nó còn là một
Khi nhắc tới đồ đôi nam nữ, chắc chắn không thể không nhớ tới áo đôi. Đây là sự lựa chọn nhiều nhất và cũng được yêu thích nhất. Nó không chỉ thể hiện tình
Nhắc đến đồ đôi chắc hẳn áo đôi là thứ được các cặp đôi lựa chọn và yêu thích nhiều nhất. Bởi áo đôi không chỉ thể hiện tình cảm mà nó còn là một
**Ngân hàng Thương mại Cổ phần Lộc Phát Việt Nam** (tên giao dịch quốc tế: **LPBank**), là một ngân hàng thương mại cổ phần của Việt Nam. LPBank được Ngân hàng Nhà nước Việt Nam
**Ngân hàng thương mại** đã hình thành tồn tại và phát triển hàng trăm năm gắn liền với sự phát triển của kinh tế hàng hoá. Sự phát triển hệ thống Ngân hàng Thương mại
nhỏ|Các binh sĩ của [[Quân đội nhân dân Việt Nam đang duyệt binh trong bộ quân phục mới.]] **Hiện đại hóa** trong Quân đội nhân dân Việt Nam là một trong những mục tiêu theo
**Ngân hàng Thương mại Trách nhiệm Hữu hạn Một thành viên Ngoại thương Công nghệ số** (tên gọi tắt: **Ngân hàng Ngoại thương Công nghệ số**, tên tiếng Anh: **Vietcombank Neo Bank Limited**, tên viết
Cam kết bán hàng chính hãng, rõ nguồn gốc.Xuất sứ: Thái LanTrọng Lượng: 20g ( 1 ô )- Nếu bạn muốn có một đôi mắt hoàn hảo thì đừng quên đánh phấn mắt, nó sẽ
🎁THÔNG TIN SẢN PHẨM : Chất thun SU THOÁNG MÁT Đường may kỹ,chắc chắn, tinh tế, sắc xảo Form Từ 40kg đến <55kg tùy cơ địa. 🌀 Màu sắc ( lưu ý ) : ●
**Quản lý khách hàng tiềm năng** là tập hợp các phương pháp, hệ thống và thực tiễn được thiết kế để tạo ra khách hàng kinh doanh tiềm năng mới, thường được điều hành thông
phải|nhỏ| Một trung tâm mua sắm lớn ở Paramus, New Jersey, bao gồm [[IKEA (không có hình), cửa hàng Christmas Tree Stores và cửa hàng Bed Bath &amp; Beyond. Nó nằm đối diện với trung
Váy sơ mi FM Style suông hoạ tiết caro cổ bẻ tay cánh dơi xẻ bên chất vải mềm mát mẻ phong cách Hàn Quốc Váy sơ mi FM Style suông hoạ tiết caro cổ
🌟THÔNG TIN SẢN PHẨM - Tên sản phẩm: Váy hoa nhí vintage FM Style dáng dài cổ bèo hoạ tiết hoa thời trang nữ tính bénh bèo - Độ tuổi: > 16 tuổi - Phù
🌟THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Màu sắc: 1 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và sản xuất bởi
🌟THÔNG TIN SẢN PHẨM - Tên sản phẩm: Áo sơ mi kiểu kèm đầm nút bọc - Độ tuổi: > 16 tuổi - Phù hợp: Nữ - Màu sắc: 4 màu xinh xắn - Họa
🌟THÔNG TIN SẢN PHẨM - Tên sản phẩm: Váy dự tiệc FM STYLE 2 dây bên tà chéo xếp ly dưới dáng dài thời trang sang chảnh hàng thiết kế cao cấp - Độ tuổi:
🌟THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: Cotton - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và sản xuất bởi FM Style tại
🌟THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Màu sắc: 5 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và sản xuất bởi
🌟THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: Cotton - Màu sắc: Nhiều màu - Họa tiết: Phối viền - Xuất xứ: Tự thiết kế và
🌺 THÔNG TIN SẢN PHẨM SIÊU DỄ THƯƠNG - DIỆN ĐỒ ĐÔI CÙNG NGƯỜI ẤY - Trẻ trung, năng động với gam màu nổi bật - Lên form siêu yêu diện lại thoải mái lắm
🌟THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: - Màu sắc: 3 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và
🌺 THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: - Màu sắc: 4 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế
🌺 THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: - Màu sắc: 4 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế
THÔNG TIN SẢN PHẨM Áo thun unisex nam nữ Fm Style form rộng hoạt tiết gấu bông siêu xinh 4 màu lựa chọn Hiện nay, áo form rộng dược đông đảo giới trẻ yêu thích,
🌟THÔNG TIN SẢN PHẨM - Tên sản phẩm: Áo Croptop – một biểu tượng cho sứ sexy, quyến rũ của nữ giới. Dù có thích hay không thì các nàng cũng phải thừa nhận vẻ
🌺 THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: - Màu sắc: 4 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế
Áo thun thì hẳn là nàng nào cũng nên sở hữu vài chiếc trong tủ đồ đúng hơm nèee, vậy nàng hãy thử nghía qua những chiếc áo thun xinh xắn, chất liệu vô cùng
🌺 THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Màu sắc: 4 màu xinh xắn - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và sản xuất
🌟THÔNG TIN SẢN PHẨM Áo thun croptop nữ Fmstyle dáng ngắn form ôm vải cotton trơn co giãn chất vải gân hàng nút giả siêu xinh 210914001 Áo Croptop – một biểu tượng cho sứ
TẾT TẾT TẾT TẾT ĐẾN RỒI 🧧🧧🧧 FM gửi nàng set áo dài cách tân giúp nàng ngọt ngào, duyên dáng hơn trong ngày Tết ✨✨ 💌 Chất tơ hoa mai cao cấp, thiết kế
🌺 THÔNG TIN SẢN PHẨM - Đi làm, đi học thanh lịch làm sao í - Chất vải mềm mịn, siêu mát lắm ạ - Màu sắc: 4 màu xinh xắn - Họa tiết: Trơn
MẶT NẠ NHAU THAI CỪU TẾ BÀO GỐC NHẬT BẢN Combo 10- GIÚP DA CĂNG BÓNG MỊN MÀNG -CHÍNH HÃNG ❌Cam kết sản phẩm giống hình ❌Được trả hàng nếu khách không hài lòng về
🌺 MÔ TẢ SẢN PHẨM - Form rộng, áo có độ rủ tự nhiên - Điểm nhấn thắt dây bên độc lạ - Chất vải mềm, siêu mát nha 🌺 HƯỚNG DẪN CHỌN SIZE CHO
🌺 THÔNG TIN SẢN PHẨM - Độ tuổi: > 16 tuổi - Phù hợp: nữ - Chất liệu: Cotton - Màu sắc: 4 Màu - Họa tiết: Trơn - Xuất xứ: Tự thiết kế và