当前位置:首页数据结构 > 正文

什么是队列?c++代码演示

作者:野牛程序员:2023-02-20 18:41:17数据结构阅读 2464

队列是一种常用的数据结构,用于在计算机程序中存储和管理数据。队列的特点是先进先出 (FIFO):先添加到队列中的数据项也是先被取出。

以下是用C++语言编写队列程序的示例代码:

#include
using namespace std;
#define MAX_SIZE 10  // 定义队列的最大容量
class Queue {
private:
    int front, rear;
    int arr[MAX_SIZE];
public:
    Queue() {    // 构造函数
        front = -1;
        rear = -1;
    }
    bool isFull() {    // 判断队列是否已满
        return (rear == MAX_SIZE - 1);
    }
    bool isEmpty() {    // 判断队列是否为空
        return (front == -1 && rear == -1);
    }
    void enqueue(int x) {   // 入队操作
        if (isFull()) {
            cout << "队列已满" << endl;
            return;
        } else if (isEmpty()) {
            front = 0;
            rear = 0;
        } else {
            rear++;
        }
        arr[rear] = x;
    }
    void dequeue() {    // 出队操作
        if (isEmpty()) {
            cout << "队列为空" << endl;
            return;
        } else if (front == rear) {
            front = -1;
            rear = -1;
        } else {
            front++;
        }
    }
    int getFront() {    // 获取队首元素
        if (isEmpty()) {
            cout << "队列为空" << endl;
            return -1;
        }
        return arr[front];
    }
    void printQueue() {    // 打印队列元素
        if (isEmpty()) {
            cout << "队列为空" << endl;
            return;
        }
        for (int i = front; i <= rear; i++) {
            cout << arr[i] << " ";
        }
        cout << endl;
    }
};
int main() {
    Queue q;
    q.enqueue(1);
    q.enqueue(2);
    q.enqueue(3);
    q.enqueue(4);
    q.enqueue(5);
    cout << "队列元素: ";
    q.printQueue();
    q.dequeue();
    q.dequeue();
    cout << "队列元素: ";
    q.printQueue();
    cout << "队首元素: " << q.getFront() << endl;
    return 0;
}

在这个示例代码中,我们定义了一个队列类 Queue,包含了队列的基本操作:入队 enqueue、出队 dequeue、获取队首元素 getFront、判断队列是否已满 isFull、判断队列是否为空 isEmpty、打印队列元素 printQueue。在主函数中,我们实例化一个队列对象 q,并进行一些队列操作,最后打印队列元素和队首元素。

野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 网站建设
  • 软件开发
  • 最新推荐

    热门点击