在C语言中,可以通过使用数组或链表来定义队列
在C语言中,可以通过使用数组或链表来定义队列。以下是使用数组定义队列的示例:
#include<stdio.h>
#defineMAX_SIZE100
structQueue{
intitems[MAX_SIZE];
intfront;
intrear;
};
structQueue*createQueue(){
structQueue*queue=(structQueue*)malloc(sizeof(structQueue));
queue->front=-1;
queue->rear=-1;
returnqueue;
}
intisEmpty(structQueue*queue){
if(queue->rear==-1){
return1;
}
return0;
}
intisFull(structQueue*queue){
if(queue->rear==MAX_SIZE-1){
return1;
}
return0;
}
voidenqueue(structQueue*queue,intvalue){
if(isFull(queue)){
printf("Queueisfull\n");
}else{
if(isEmpty(queue)){
queue->front=0;
}
queue->rear++;
queue->items[queue->rear]=value;
printf("%denqueuedtoqueue\n",value);
}
}
voiddequeue(structQueue*queue){
if(isEmpty(queue)){
printf("Queueisempty\n");
}else{
printf("%ddequeuedfromqueue\n",queue->items[queue->front]);
queue->front++;
if(queue->front>queue->rear){
queue->front=queue->rear=-1;
}
}
}
intmain(){
structQueue*queue=createQueue();
enqueue(queue,10);
enqueue(queue,20);
enqueue(queue,30);
dequeue(queue);
dequeue(queue);
dequeue(queue);
dequeue(queue);
return0;
}
在上面的示例中,我们使用结构体定义了一个队列,并实现了对队列的入队和出队操作。我们还定义了一个createQueue
函数用于创建一个队列,isEmpty
函数用于判断队列是否为空,isFull
函数用于判断队列是否已满。通过调用这些函数,我们可以对队列进行操作。
版权声明
本文仅代表作者观点,不代表博信信息网立场。