当前位置:首页题目 > 正文

c++队列题目

作者:野牛程序员:2023-08-26 06:45:49题目阅读 2753

题目描述:编写一个程序,实现一个基于数组的队列。要求队列具有入队(enqueue)和出队(dequeue)两个操作。

样例输入:

5         // 设置队列的最大容量为5
enqueue 1 // 入队元素1
enqueue 2 // 入队元素2
dequeue   // 出队操作
enqueue 3 // 入队元素3
dequeue   // 出队操作

样例输出:

Enqueued 1   // 入队元素1
Enqueued 2   // 入队元素2
Dequeued 1   // 出队元素1
Enqueued 3   // 入队元素3
Dequeued 2   // 出队元素2

思路分析: 首先,创建一个固定大小的整型数组作为队列的存储结构,再创建两个指针变量,一个指向队列头部(front),另一个指向队列尾部的下一个位置(rear)。入队操作时,将元素添加到rear指针指向的位置,然后将rear指针右移一位。出队操作时,返回front指针指向的元素,然后将front指针右移一位。

代码演示:

#include <iostream>
using namespace std;

const int MAX_SIZE = 5;
int queue[MAX_SIZE];
int front = 0, rear = 0;

void enqueue(int item) {
    if (rear < MAX_SIZE) {
        queue[rear] = item;
        cout << "Enqueued " << item << endl;
        rear++;
    } else {
        cout << "Queue is full. Cannot enqueue." << endl;
    }
}

int dequeue() {
    if (front < rear) {
        int item = queue[front];
        cout << "Dequeued " << item << endl;
        front++;
        return item;
    } else {
        cout << "Queue is empty. Cannot dequeue." << endl;
        return -1; // Return a sentinel value to indicate error
    }
}

int main() {
    enqueue(1);
    enqueue(2);
    dequeue();
    enqueue(3);
    dequeue();
    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击