出队两个元素,并输出队列中剩余元素。

C语言实现:

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 10

typedef struct {
    int data[MAX_SIZE];
    int front;  // 队头
    int rear;   // 队尾
} Queue;

void initQueue(Queue *q) {
    q->front = q->rear = 0;
}

int isFull(Queue *q) {
    return (q->rear + 1) % MAX_SIZE == q->front;
}

int isEmpty(Queue *q) {
    return q->front == q->rear;
}

void enqueue(Queue *q, int x) {
    if (isFull(q)) {
        printf("Queue is full.\n");
        return;
    }
    q->data[q->rear] = x;
    q->rear = (q->rear + 1) % MAX_SIZE;
}

int dequeue(Queue *q) {
    if (isEmpty(q)) {
        printf("Queue is empty.\n");
        return -1;
    }
    int x = q->data[q->front];
    q->front = (q->front + 1) % MAX_SIZE;
    return x;
}

void printQueue(Queue *q) {
    if (isEmpty(q)) {
        printf("Queue is empty.\n");
        return;
    }
    printf("Queue: ");
    int i = q->front;
    while (i != q->rear) {
        printf("%d ", q->data[i]);
        i = (i + 1) % MAX_SIZE;
    }
    printf("\n");
}

int main() {
    Queue q;
    initQueue(&q);

    enqueue(&q, 1);
    enqueue(&q, 2);
    enqueue(&q, 3);
    enqueue(&q, 4);
    enqueue(&q, 5);
    enqueue(&q, 6);
    enqueue(&q, 7);
    enqueue(&q, 8);
    enqueue(&q, 9);
    enqueue(&q, 10);
    printQueue(&q);

    enqueue(&q, -111);
    printQueue(&q);

    dequeue(&q);
    dequeue(&q);
    printQueue(&q);

    return 0;
}

Java实现:

public class Queue {
    private static final int MAX_SIZE = 10;
    private int[] data;
    private int front;  // 队头
    private int rear;   // 队尾

    public Queue() {
        data = new int[MAX_SIZE];
        front = rear = 0;
    }

    public boolean isFull() {
        return (rear + 1) % MAX_SIZE == front;
    }

    public boolean isEmpty() {
        return front == rear;
    }

    public void enqueue(int x) {
        if (isFull()) {
            System.out.println("Queue is full.");
            return;
        }
        data[rear] = x;
        rear = (rear + 1) % MAX_SIZE;
    }

    public int dequeue() {
        if (isEmpty()) {
            System.out.println("Queue is empty.");
            return -1;
        }
        int x = data[front];
        front = (front + 1) % MAX_SIZE;
        return x;
    }

    public void printQueue() {
        if (isEmpty()) {
            System.out.println("Queue is empty.");
            return;
        }
        System.out.print("Queue: ");
        int i = front;
        while (i != rear) {
            System.out.print(data[i] + " ");
            i = (i + 1) % MAX_SIZE;
        }
        System.out.println();
    }

    public static void main(String[] args) {
        Queue q = new Queue();

        q.enqueue(1);
        q.enqueue(2);
        q.enqueue(3);
        q.enqueue(4);
        q.enqueue(5);
        q.enqueue(6);
        q.enqueue(7);
        q.enqueue(8);
        q.enqueue(9);
        q.enqueue(10);
        q.printQueue();

        q.enqueue(-111);
        q.printQueue();

        q.dequeue();
        q.dequeue();
        q.printQueue();
    }
}
``
用C语言或Java语言编程实现创建循环队列在队列中入队一个--元素然后

原文地址: https://www.cveoy.top/t/topic/cQ5O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录