实现一个普通顺序队列

要求实现一个普通顺序队列。

当输入1 2 3 -1时,输出为1 2 3 。

当输入为1 2 3 4 5 6 7 8 9 10 11 -1时,输出为

queue is full!

1 2 3 4 5 6 7 8 9 10

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,以下是c和c++ 分别实现方式。
以下是 C 和 C++ 语言实现一个普通顺序队列的示例代码:

C 语言实现:

#include <stdio.h>

#define MAX_SIZE 10

int queue[MAX_SIZE];
int front = 0;   // 队头指针
int rear = 0;    // 队尾指针

// 判断队列是否为空
int is_empty() {
    return front == rear;
}

// 判断队列是否已满
int is_full() {
    return rear == MAX_SIZE;
}

// 入队
void enqueue(int x) {
    if (is_full()) {
        printf("queue is full!\n");
        return;
    }
    queue[rear++] = x;
}

// 出队
int dequeue() {
    if (is_empty()) {
        printf("queue is empty!\n");
        return -1;
    }
    return queue[front++];
}

// 打印队列中的元素
void print_queue() {
    if (is_empty()) {
        printf("queue is empty!\n");
        return;
    }
    for (int i = front; i < rear; i++) {
        printf("%d ", queue[i]);
    }
    printf("\n");
}

int main() {
    int x;
    while (1) {
        scanf("%d", &x);
        if (x == -1) {
            break;
        }
        enqueue(x);
    }
    print_queue();
    return 0;
}

C++ 语言实现:

#include <iostream>

#define MAX_SIZE 10

int queue[MAX_SIZE];
int front = 0;   // 队头指针
int rear = 0;    // 队尾指针

// 判断队列是否为空
bool is_empty() {
    return front == rear;
}

// 判断队列是否已满
bool is_full() {
    return rear == MAX_SIZE;
}

// 入队
void enqueue(int x) {
    if (is_full()) {
        std::cout << "queue is full!" << std::endl;
        return;
    }
    queue[rear++] = x;
}

// 出队
int dequeue() {
    if (is_empty()) {
        std::cout << "queue is empty!" << std::endl;
        return -1;
    }
    return queue[front++];
}

// 打印队列中的元素
void print_queue() {
    if (is_empty()) {
        std::cout << "queue is empty!" << std::endl;
        return;
    }
    for (int i = front; i < rear; i++) {
        std::cout << queue[i] << " ";
    }
    std::cout << std::endl;
}

int main() {
    int x;
    while (1) {
        std::cin >> x;
        if (x == -1) {
            break;
        }
        enqueue(x);
    }
    print_queue();
    return 0;
}

以上代码实现了一个基本的顺序队列,包括判断队列是否为空、判断队列是否已满、入队、出队和打印队列中的元素等基本操作。当队列已满时,会输出"queue is full!",当队列为空时,会输出"queue is empty!"。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢