#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include "SeqQueue.h"
void InitQueue(SeqQueue *SQ)
{
SQ->front=SQ->rear=0;
}
int IsEmpty(SeqQueue *SQ)
{
if(SQ->front==SQ->rear)
return 1;
return 0;
}
int IsFull(SeqQueue*SQ)
{
if(SQ->rear==MaxSize)
return 1;
return 0;
}
void EnterQueue(SeqQueue*SQ,DataType data)
{
if(IsFull(SQ))
{
printf("队列已满\n");
return 0;
}
SQ->Queue[SQ->rear++]=data;
}
int DeleteQueue(SeqQueue*SQ,DataType *data)
{
if(IsEmpty(SQ))
{
printf("队列为空\n");
return 0;
}
*data=SQ->Queue[SQ->front++];
return 1;
}
int GetHead(SeqQueue*SQ,DataType *data)
{
if(IsEmpty(SQ))
{
printf("队列为空\n");
}
return *data=SQ->Queue[SQ->front];
}
void ClearQueue(SeqQueue*SQ)
{
SQ->front=SQ->rear=0;
}
void PrintQueue(SeqQueue *SQ)
{
int i=SQ->front;
while(SQ->rear>i)
{
printf("%-3d",SQ->Queue[i]);
i++;
}
}
#ifndef SEQQUEUE_H_INCLUDED
#define SEQQUEUE_H_INCLUDED
#define MaxSize 10
typedef int DataType;
typedef struct Queue
{
DataType Queue[MaxSize];
int front;
int rear;
}SeqQueue;
void InitQueue(SeqQueue *SQ);
int IsEmpty(SeqQueue *SQ);
int IsFull(SeqQueue*SQ);
void EnterQueue(SeqQueue*SQ,DataType data);
int GetHead(SeqQueue*SQ,DataType *data);
void ClearQueue(SeqQueue*SQ);
void PrintQueue(SeqQueue *SQ);
int DeleteQueue(SeqQueue*SQ,DataType *data);
#endif
*main.c*/
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
#include "SeqQueue.h"
int main()
{
SeqQueue SQ;
DataType data;
InitQueue(&SQ);
for(int i=0;i<5;i++)
{
EnterQueue(&SQ,i);
}
printf("队列中的元素为\n");
PrintQueue(&SQ);
printf("\n");
DeleteQueue(&SQ,&data);
printf("出队元素%d\n",data);
printf("\n");
DeleteQueue(&SQ,&data);
printf("队列元素\n");
PrintQueue(&SQ);
printf("\n");
data=GetHead(&SQ,&data);
printf("队首元素为%d\n",data);
printf("#元素16入队#\n");
EnterQueue(&SQ,16);
printf("队列元素为\n");
PrintQueue(&SQ);
printf("\n");
return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210506204559285.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyNzY1NTU0,size_16,color_FFFFFF,t_70)