diff --git a/队列/线性队列的基本操作.c b/队列/线性队列的基本操作.c new file mode 100644 index 0000000..bd49eaa --- /dev/null +++ b/队列/线性队列的基本操作.c @@ -0,0 +1,49 @@ +#include +#include +#include +#define MaxSize 10 + +//栈是只允许在一段进行插入或删除操作的线性表 +//队列只允许在一端进行插入,在另一端进行删除的线性表 +typedef struct{ + int data[MaxSize]; + int front,rear; +}SqQueue; +//初始化队列 +void InitQUeue(SqQueue *S){ + S->front = S->rear = 0; +} +//判断队列是否满 +bool QueueFull(SqQueue S){ + if(S.rear==MaxSize){ + return true; + } + return false; +} +//判断队列是否为空 +bool QueueEmpty(SqQueue S){ + if(S.front==S.rear){ + return true; + }else{ + return false; + } +} +//入队操作 +bool EnQueue(SqQueue *S,int x){ + if(QueueFull(*S)){ + return false; + } + S->data[S->rear] = x; + S->rear += 1; + return true; +} + +int main(){ + SqQueue S; + InitQUeue(&S); + printf("%d\n",QueueEmpty(S)); + EnQueue(&S,5); + printf("%d\n",QueueEmpty(S)); + printf("%d\n",S.data[S.rear-1]); + return 0; +}