Hàng đợi (Queue) trong C
Hàng đợi (Queue) là một cấu trúc dữ liệu trừu tượng, là một cái gì đó tương tự như hàng đợi trong đời sống hàng ngày (xếp hàng).
Chương trình minh họa Hàng đợi (Queue) trong C
#include#include #include #include #define MAX 6int intArray[MAX]; int front = 0; int rear = -1; int itemCount = 0;int peek(){ return intArray[front]; }bool isEmpty(){ return itemCount == 0; }bool isFull(){ return itemCount == MAX; }int size(){ return itemCount; } void insert(int data){ if(!isFull()){ if(rear == MAX-1){ rear = -1; } intArray[++rear] = data; itemCount++; } }int removeData(){ int data = intArray[front++]; if(front == MAX){ front = 0; } itemCount--; return data; }int main() { /* chen 5 phan tu */ insert(3); insert(5); insert(9); insert(1); insert(12); // front : 0 // rear : 4 // ------------------ // index : 0 1 2 3 4 // ------------------ // queue : 3 5 9 1 12 insert(15); // front : 0 // rear : 5 // --------------------- // index : 0 1 2 3 4 5 // --------------------- // queue : 3 5 9 1 12 15 if(isFull()){ printf("Hang doi (Queue) da day!\n"); } // xoa mot phan tu int num = removeData(); printf("Phan tu bi xoa: %d\n",num); // front : 1 // rear : 5 // ------------------- // index : 1 2 3 4 5 // ------------------- // queue : 5 9 1 12 15 // Chen them mot phan tu insert(16); // front : 1 // rear : -1 // ---------------------- // index : 0 1 2 3 4 5 // ---------------------- // queue : 16 5 9 1 12 15 // neu hang doi la day thi phan tu se khong duoc chen. insert(17); insert(18); // ---------------------- // index : 0 1 2 3 4 5 // ---------------------- // queue : 16 5 9 1 12 15 printf("Phan tu tai vi tri front: %d\n",peek()); printf("----------------------\n"); printf("Gia tri chi muc : 5 4 3 2 1 0\n"); printf("----------------------\n"); printf("Hang doi (Queue): "); while(!isEmpty()){ int n = removeData(); printf("%d ",n); } }
Kết quả
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
Bài học Cấu trúc dữ liệu và giải thuật phổ biến tại hoconline.club:
- Giải thuật tiệm cận - Asymptotic Algorithms
- Cấu trúc dữ liệu mảng (Array)
- Danh sách liên kết - Linked List
- Cấu trúc dữ liệu ngăn xếp - Stack
- Cấu trúc dữ liệu hàng đợi - Queue
- Tìm kiếm tuyến tính - Linear Search
- Tìm kiếm nhị phân - Binary Search
- Sắp xếp nổi bọt - Bubble Sort
- Sắp xếp chèn - Insertion Sort
cau-truc-du-lieu-hang-doi.jsp
Bài viết liên quan