/******************************************************
一个静态数组实现的简单队列
******************************************************/
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define MAX_QUEUE_SIZE 100 /* 队列向量大小 */
typedef int ElemType ;
typedef struct queue
{
int front;
int rear;
ElemType queue_array[MAX_QUEUE_SIZE] ;
}SqQueue;
SqQueue Init_Queue() /* 队列初始化 */
{
SqQueue S;
S.front=S.rear=0;
return (S);
}
int push(SqQueue *S,ElemType e) /* 使数据元素e进队列成为新的队尾 */
{
if((*S).rear==MAX_QUEUE_SIZE-1)
{
return ERROR; /* 队列满,返回错误标志 */
}
(*S).queue_array[(*S).rear]=e; /* e成为新的队尾 */
(*S).rear++ ; /* 队尾指针加1 */
return OK; /* 入队成功 */
}
int pop(SqQueue *S,ElemType *e ) /*弹出队首元素*/
{
if((*S).front==(*S).rear)
{
return ERROR; /* 队列空,返回错误标志 */
}
*e=(*S).queue_array[(*S).front] ;
(*S).front++;
return OK;
}
int main()
{
int tmp=0,i=0;
SqQueue S;
S=Init_Queue();
for(i=0;i<10;i++)
{
push(&S,i);
}
for(i=0;i<10;i++)
{
pop(&S,&tmp);
printf("%d\n",tmp);
}
return 0;
}
一个静态数组实现的简单队列
最新推荐文章于 2021-01-23 15:54:34 发布