Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ triển khai hàng đợi (Queue) bằng mảng


Hàng đợi (Queue) tuân theo cơ chế FIFO. Triển khai bằng mảng tĩnh kích thước cố định.

Ví dụ

#include <iostream>
using namespace std;

int queue[100], n = 100, front = -1, rear = -1;

void Insert() {
    int val;
    if (rear == n - 1)
        cout << "Queue Overflow" << endl;
    else {
        if (front == -1)
            front = 0;
        cout << "Insert the element in queue: " << endl;
        cin >> val;
        rear++;
        queue[rear] = val;
    }
}

void Delete() {
    if (front == -1 || front > rear) {
        cout << "Queue Underflow";
        return;
    } else {
        cout << "Element deleted from queue is: " << queue[front] << endl;
        front++;
    }
}

void Display() {
    if (front == -1)
        cout << "Queue is empty" << endl;
    else {
        cout << "Queue elements are: ";
        for (int i = front; i <= rear; i++)
            cout << queue[i] << " ";
        cout << endl;
    }
}

int main() {
    int ch;
    cout << "1) Insert element to queue" << endl;
    cout << "2) Delete element from queue" << endl;
    cout << "3) Display all the elements of queue" << endl;
    cout << "4) Exit" << endl;
    do {
        cout << "Enter your choice: " << endl;
        cin >> ch;
        switch (ch) {
            case 1: Insert(); break;
            case 2: Delete(); break;
            case 3: Display(); break;
            case 4: cout << "Exit" << endl; break;
            default: cout << "Invalid choice" << endl;
        }
    } while(ch != 4);
    return 0;
}

Kết quả

1) Insert element to queue
2) Delete element from queue
3) Display all the elements of queue
4) Exit
Enter your choice: 1
Insert the element in queue: 4
Enter your choice: 1
Insert the element in queue: 3
Enter your choice: 1
Insert the element in queue: 5
Enter your choice: 2
Element deleted from queue is: 4
Enter your choice: 3
Queue elements are: 3 5
Enter your choice: 7
Invalid choice
Enter your choice: 4
Exit

Hàm Insert()

Kiểm tra tràn (rear == n-1). Nếu front == -1 thì đặt front = 0. Tăng rear và gán giá trị.

void Insert() {
    int val;
    if (rear == n - 1)
        cout << "Queue Overflow" << endl;
    else {
        if (front == -1)
            front = 0;
        cout << "Insert the element in queue: " << endl;
        cin >> val;
        rear++;
        queue[rear] = val;
    }
}

Hàm Delete()

Kiểm tra rỗng (front == -1 hoặc front > rear). In phần tử front và tăng front.

void Delete() {
    if (front == -1 || front > rear) {
        cout << "Queue Underflow";
        return;
    } else {
        cout << "Element deleted from queue is: " << queue[front] << endl;
        front++;
    }
}

Hàm Display()

Duyệt từ front đến rear bằng vòng lặp for.

void Display() {
    if (front == -1)
        cout << "Queue is empty" << endl;
    else {
        cout << "Queue elements are: ";
        for (int i = front; i <= rear; i++)
            cout << queue[i] << " ";
        cout << endl;
    }
}

Hàm main()

int main() {
    int ch;
    cout << "1) Insert element to queue" << endl;
    cout << "2) Delete element from queue" << endl;
    cout << "3) Display all the elements of queue" << endl;
    cout << "4) Exit" << endl;
    do {
        cout << "Enter your choice: " << endl;
        cin >> ch;
        switch (ch) {
            case 1: Insert(); break;
            case 2: Delete(); break;
            case 3: Display(); break;
            case 4: cout << "Exit" << endl; break;
            default: cout << "Invalid choice" << endl;
        }
    } while(ch != 4);
    return 0;
}