#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef int ElemType;
typedef struct{
ElemType data[MAXSIZE];
int front;
int rear;
}SqQueue;
//初始化
void InitQueue(SqQueue &Q){
Q.front=Q.rear=0;
printf("初始化队列成功!\n");
}
//判断队列是否为空
int QueuEmpty(SqQueue &Q){
if(Q.front==Q.rear)
return 1;
else
return 0;
}
//入队
int EnQueue(SqQueue &Q,ElemType x){
if(Q.rear==MAXSIZE){//队满
return 0;
}
Q.data[Q.rear]=x;
Q.rear++;
return 1;
}
//出队
int DeQueue(SqQueue &Q){
ElemType x;
if(Q.front==Q.rear){
return 0;
}
x=Q.data[Q.front];
Q.front++;
printf("出队成功!\n");
printf("出队的元素为:%d\n",x);
return 1;
}
//多元素入队
int MEnQueue(SqQueue &Q){
printf("你想几个元素入队:");
int n;
ElemType x;
scanf("%d",&n);
printf("请依次输入入队元素:");
for(int i=1; i<=n; i++)
{
scanf("%d",&x);
EnQueue(Q,x);
}
return 1;
}
//顺序队列的遍历输出
bool Print(SqQueue Q) {
ElemType x;
printf("队列值为:");
if(Q.front==Q.rear)
return false; //若队列为空则报错
while(Q.front<Q.rear) {
x=Q.data[Q.front++];
printf("%d ",x);
}
printf("\n");
return true;
}
int main(){
ElemType x;
SqQueue Q;
InitQueue(Q);
printf("你想几个元素入队:");
int n;
scanf("%d",&n);
printf("请依次输入入队元素:");
for(int i=1; i<=n; i++)
{
scanf("%d",&x);
EnQueue(Q,x);
}
Print(Q);
printf("-------------------\n");
DeQueue(Q);
Print(Q);
printf("-------------------\n");
MEnQueue(Q);
Print(Q);
printf("-------------------\n");
DeQueue(Q);
Print(Q);
}
队列的顺序表示
最新推荐文章于 2024-09-16 17:46:36 发布