#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#define MAX 100
struct Queue {
int front;
int rear;
int* base;
};
void Init(struct Queue* Q); //初始化队列
void EnQueue(struct Queue* Q,int e); //入队
void DnQueue(struct Queue* Q); //出队
int SizeQ(struct Queue Q); //求队列长
int main()
{
int e = 0, size = 0;
struct Queue Q;
Init(&Q);
while (e != -1)
{
printf("请输入数据,-1表示结束\n");
scanf("%d", &e);
if (e != -1)
{
EnQueue(&Q, e);
}
}
DnQueue(&Q);
size = SizeQ(Q);
printf("栈长为===%d\n", size);
return 0;
}
void Init(struct Queue* Q)
{
Q->base = (int*)malloc(MAX * sizeof(int));
if (Q->base == NULL)
{
printf("顺序队开辟失败\n");
}
else
{
Q->front = 0;
Q->rear = 0;
printf("初始化成功\n");
}
}
void EnQueue(struct Queue* Q, int e)
{
if ((Q->rear + 1) % MAX == Q->front)
{
printf("顺序队队满了!\n");
}
else
{
Q->base[Q->rear] = e;
Q->rear = (Q->rear + 1) % MAX;
printf("入队成功\n");
}
}
void DnQueue(struct Queue* Q)
{
int e = 0;
if (Q->front == Q->rear)
{
printf("顺序队队空!\n");
}
else
{
e = Q->base[Q->front];
Q->front = (Q->front + 1) % MAX;
printf("出队元素为=====%d\n", e);
}
}
int SizeQ(struct Queue Q)
{
return (Q.rear - Q.front + MAX) % MAX;
}
顺序队c语言实现—数据结构
最新推荐文章于 2024-10-04 23:00:36 发布