基于Dev写的C队列代码,实现了几个基本函数(入队,出队,队首,是否为空队列)。
#include<stdio.h>
#include<stdlib.h>
const int MANX = 100;
typedef int Date;
struct que{
Date* q;
int l,r;
};
typedef struct que* Que;
Que creat(){
Que p = (Que)malloc(sizeof(struct que));
if(p!=NULL){
p->q = (Date*)malloc(sizeof(int)*MANX);
if(p->q!=NULL){
printf("创建成功!!!\n");
p->l=0;
p->r=0;
return p;
}
else{
free(p);
return NULL;
}
}
return NULL;
}
void push_que(Que queue,Date x){
if((queue->r+1)%MANX == queue->l){
printf("队列满了!!\n");
}
else{
queue->q[queue->r]=x;
queue->r=(queue->r+1) % MANX;
//printf("000\n");
}
}
void pop_que(Que queue){
if(queue->l==queue->r){
printf("空队列了!!\n");
}
queue->l=(queue->l+1)%MANX;
}
void frontf_que(Que queue){
if(queue->l==queue->r){
printf("空队列\n");
}
printf("%d\n",queue->q[queue->l]);
}
void empty(Que queue){
if(queue->l==queue->r)
printf("队列为空队列\n");
else
printf("不是空队列\n");
}
int main(){
int n;
Que queue;
printf("要先创建队列喔!!!!!\n");
while(1){
printf("******-----------******\n");
printf("\t1.进队\n");
printf("\t2.出队\n");
printf("\t3.创建队\n");
printf("\t4.查看是否空队\n");
printf("\t5.查看队首元素\n");
printf("\t1.退出请输0\n");
printf("******-----------******\n");
scanf("%d",&n);
if(n==3)
queue =creat();
else if(n==2)
pop_que(queue);
else if(n==1){
int k;
printf("你要进队的元素\n");
scanf("%d",&k);
push_que(queue,k);
}
else if(n==4)
empty(queue);
else if(n==5)
frontf_que(queue);
if(n==0)
break;
}
printf("再见了,老铁");
return 0;
}