#include<stdio.h>
#define MAXSIZE 5//定义队列中元素的最大个数
#define QElemType int
typedef struct{
QElemType data[MAXSIZE];//用静态数组存放队列元素
int front,rear;//队头指针和队尾指针
}SqQueue;
//初始化
void InitQueue(SqQueue &Q){
Q.front = Q.rear = 0;
}
//判断队满
int QueueFull(SqQueue &Q){
if((Q.rear + 1) % MAXSIZE == Q.front)
return 1;
else
return 0;
}
//判断队空
int QueueEmpty(SqQueue &Q){
if(Q.front == Q.rear)
return 1;
else
return 0;
}
//入队
void EnQueue(SqQueue &Q,QElemType x){
if(QueueFull(Q))
return;
Q.data[Q.rear] = x;
Q.rear = (Q.rear + 1) % MAXSIZE;
}
//出队
void DeQueue(SqQueue &Q,QElemType &x){
if(!QueueEmpty(Q))
return;
x = Q.data[Q.front];
Q.front = (Q.front + 1) % MAXSIZE;
}
//获取队首元素(不出队)
void GetHead(SqQueue &Q,QElemType x){
if(!QueueEmpty(Q))
return;
x = Q.data[Q.front];
}
//打印
void ShowQueue(SqQueue &Q){
while(!QueueEmpty(Q)){
printf("%d",Q.data[Q.front++]);
}
}
int main(){
SqQueue Q;
InitQueue(Q);
for(int i=1;i<=5;i++){
EnQueue(Q,i);
}
ShowQueue(Q);
return 0;
}
数据结构——队列的顺序存储(C语言实现)
于 2023-12-02 19:44:49 首次发布