大神小神修道之人帮我瞧瞧这个队列 哪里有点问题
就是静态队列的实现,有两个小问题,在什么地方找不到,帮我找找下,谢了先程序代码:
#include<stdio.h> #include<malloc.h> typedef struct { int* date; int front; int rear; } QUE; void init(QUE*); int pop(QUE*,int *val); bool push(QUE*,int val); bool empty(QUE*); bool full(QUE*); int main(void) { int val=0; QUE Q; init(&Q); push(&Q,1); pop(&Q,&val); }; void init(QUE* queue) { /*printf("请输入要创建队列长度\n"); scanf("%d",&queue->len);*/ queue->date=(int *)malloc(6*sizeof(int)); queue->front=queue->rear=0; }; bool empty(QUE*queue) { if(queue->front%6==queue->rear%6) { return true; } else return false; }; bool full(QUE*queue) { if((queue->rear+1)%6==queue->front) { return true; } else return false; }; bool push(QUE* queue,int val) { if(full(queue)) { printf("队列满了,不能添加\n"); return false; } else { queue->date[queue->rear]=val; queue->rear++; }; int pop(QUE*queue,int *val) { if(empty(queue)) { printf("队列空了\n"); return false; } else{ *val=queue->date[queue->front] queue->front++; return *val; }; };