用C语言实现队列的顺序存储结构
程序员文章站
2022-05-21 11:48:53
...
队列的顺序存储结构算是数据结构里面比较简单的一块知识点了,他的代码也很简单
代码如下:
#include<stdio.h>
#define elemtype int
#define maxsize 30
#define false 0
#define true 1
#define bool char
//循环队列
typedef struct {
elemtype data[maxsize];
int front ,rear;
}SqQueue;
void initQueue(SqQueue *Q){
Q->front = Q->rear = 0;
}
bool emptyQueue(SqQueue Q){
if(Q.front = Q.rear){
return true;
}
else{
return false;
}
}
void EnQueue(SqQueue *Q,elemtype x){
if((Q->rear+1)%maxsize == Q->front){
printf("this queue is full");
}else{
Q->data[Q->rear]=x;
Q->rear = (Q->rear+1)%maxsize;
}
}
void DeQueue(SqQueue *Q,elemtype *x){
*x = Q->data[Q->front];
Q->front = (Q->front+1)%maxsize;
}
elemtype GetHead(SqQueue Q){
elemtype x;
x = Q.data[Q.front];
return x;
}
int main (){
SqQueue Q;
initQueue(&Q);
elemtype x;
//判断是否为空
if(emptyQueue(Q) == true){
printf("this is a null queue");
}
//入队
EnQueue(&Q,6);
//读队首元素
x=GetHead(Q);
printf("队首元素是:%d\n",x);
//入队
EnQueue(&Q,8);
//读队首元素
x=GetHead(Q);
printf("队首元素是:%d\n",x);
//出队
DeQueue(&Q,&x);
printf("出队的元素是:%d\n",x);
//读队首元素
x=GetHead(Q);
printf("队首元素是:%d\n",x);
}