重新复习了一下循环队列,又有了新的收获
对于指针只能用"->“索引
对于结构体只能用”."索引
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
int *data;
int front;
int rear;
}Queue;
int Queue_init(Queue *q)
{
q->data = (int*)malloc(100*sizeof(int));
if(q->data==NULL)
{
fprintf(stderr,"分配内存错误");
return 0;
}
q->front = q->rear=0;
q->data[0]=0;
return 1;
}
int EnQueue(Queue *q,int e)
{
if((q->rear+1)%100 == q->front)
return 0;
q->data[q->rear]=e;
q->rear=(q->rear+1)%100;
return 1;
}
int DeQueue(Queue *q,int *e)
{
if(q->front==q->rear)
return 0;
*e = q->data[q->front];
q->front = (q->front+1)%100;
return 1;
}
int main(int args,char* argv[])
{
Queue q;
int temp;
if(Queue_init(&q))
fprintf(stdout,"分配内存成功");
else
fprintf(stderr,"分配内存失败");
printf("输入数据\n");
scanf("%d",&temp);
while(temp!=0)
{
EnQueue(&q,temp);
scanf("%d",&temp);
}
printf("输出数据\n");
while(DeQueue(&q,&temp))
{
printf("%d\n",temp);
}
}