用C语言或Java语言编程实现创建循环队列在队列中入队一个--元素然后
出队两个元素,并输出队列中剩余元素。
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();
}
}
``
原文地址: https://www.cveoy.top/t/topic/cQ5O 著作权归作者所有。请勿转载和采集!