用C语言或Java语言编程实现创建循环队列在队列中入队一个--元素帮我用200字详细描述
循环队列是一种特殊的队列数据结构,它可以在队列的尾部插入元素,并在队列的头部删除元素。循环队列的实现需要使用一个数组来存储元素,并使用两个指针front和rear分别指向队列的头部和尾部。当队列的尾部指针到达数组的末尾时,它会循环回到数组的开头,从而实现循环队列的特性。
在C语言中,可以使用以下代码创建一个循环队列:
#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 element) {
if (isFull(q)) {
printf("Queue is full!\n");
return;
}
q->data[q->rear] = element; // 将元素插入到队列的尾部
q->rear = (q->rear + 1) % MAX_SIZE; // 将尾部指针向后移动一位
}
int dequeue(Queue* q) {
if (isEmpty(q)) {
printf("Queue is empty!\n");
return -1;
}
int element = q->data[q->front]; // 获取队列头部的元素
q->front = (q->front + 1) % MAX_SIZE; // 将头部指针向后移动一位
return element;
}
在Java语言中,可以使用以下代码创建一个循环队列:
public class Queue {
private int[] data;
private int front;
private int rear;
private int capacity;
public Queue(int capacity) {
this.data = new int[capacity];
this.front = this.rear = 0;
this.capacity = capacity;
}
public boolean isFull() {
return (this.rear + 1) % this.capacity == this.front;
}
public boolean isEmpty() {
return this.front == this.rear;
}
public void enqueue(int element) {
if (isFull()) {
System.out.println("Queue is full!");
return;
}
this.data[this.rear] = element;
this.rear = (this.rear + 1) % this.capacity;
}
public int dequeue() {
if (isEmpty()) {
System.out.println("Queue is empty!");
return -1;
}
int element = this.data[this.front];
this.front = (this.front + 1) % this.capacity;
return element;
}
}
在循环队列中插入一个-|||-元素,只需要调用enqueue方法即可:
Queue q = new Queue(10);
q.enqueue(-111);
以上是创建循环队列的基本实现,可以根据具体的需求进行扩展和优化
原文地址: https://www.cveoy.top/t/topic/cQ6Y 著作权归作者所有。请勿转载和采集!