//基本顺序队列 #include <stdio.h> #include <stdbool.h> #define MAXSIZE 50 typedef struct { int data[MAXSIZE]; int front,rear; }SqQueue; void initSqQueue(SqQueue *Q)//进行队的初始化 { Q->front=0; Q->rear=0; } bool isEmpty(SqQueue *Q)//判断队伍是否为空 { if(Q->front==Q->rear) { return true; } else { return false; } } bool EnQueue(SqQueue *Q,int e)//进队 { if(Q->rear==MAXSIZE)//判断队是否已满,rear是最后一个元素的位置+1 { return false; } else { Q->data[Q->rear]=e;//先进行赋值操作 Q->rear++;//再进行++ return true; } } bool DeQueue(SqQueue *Q,int *e)//出队操作,将值赋给e { if(isEmpty(Q)) { return false; } else { *e=Q->data[Q->front]; Q->front++;//front上移 return true; } } int QueueLength(SqQueue Q)//求队伍长度 { return (Q.rear-Q.front); } int main() { SqQueue Q; initSqQueue(&Q); int x; for(int i=0;i<5;i++) { scanf("%d",&x); EnQueue(&Q,x); } int *e; int a=0; e=&a; DeQueue(&Q,e); printf("DeQueue_value: %d\n",*e); printf("Q.front: %d Q.rear: %d\n",Q.front,Q.rear); printf("First elem: %d\n",Q.data[Q.front]); printf("QueueLength: %d\n",QueueLength(Q)); return 0; }
标签:03,return,int,31,front,基本操作,false,SqQueue,rear From: https://www.cnblogs.com/ryuichi-ssk/p/17277259.html