循环队列-C语言
具体代码
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef struct Queue{
int head;
int rear;
int data[MAXSIZE];
int size;
}Queue;
void Init(Queue *Q){
Q->head=0;
Q->rear=0;
Q->size=0;
for(int i=0;i<MAXSIZE;i++){
Q->data[i]=0;
}
}
void Add(Queue *Q,int data){
if(Q->size<MAXSIZE){
Q->data[Q->rear]=data;
Q->rear=(Q->rear+1)%MAXSIZE;
Q->size++;
}else{
printf("空间已满!");
return;
}
}
void Delete(Queue *Q){
if(Q->size>0){
Q->data[Q->head]=0;
Q->head=(Q->head+1)%MAXSIZE;
Q->size--;
}else{
printf("没有元素无法删除");
return;
}
}
void Print(Queue Q){
for(int i=0;i<MAXSIZE;i++){
if(Q.data[i]!=0){
printf("%d ",Q.data[i]);
}
}
}
int main(){
Queue Q;
Init(&Q);
Add(&Q,5);
Delete(&Q);
Add(&Q,6);
Add(&Q,7);
Add(&Q,8);
Add(&Q,9);
Delete(&Q);
Print(Q);
}