#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#define MAX 100
struct Queue {
int* base;
int front;
int rear;
};
struct Sqsack {
struct Queue Q1;
struct Queue Q2;
};
void Init(struct Queue* Q);
void EnQueue(struct Queue* Q, int e);
int DeQueue(struct Queue* Q);
int Size(struct Queue Q);
int Empty(struct Queue Q); //判断队列是否为空,是空返回0,非空返回1
int Full(struct Queue Q); //判断队列是否满,满了返回1,不满返回0
void Initsqsack(struct Sqsack* L); //初始化栈
int Emptysqsack(struct Sqsack L); //判断栈是否为空,空返回0,不空1
void Push(struct Sqsack* L, int e); //入栈
int Pop(struct Sqsack* L); //出栈
int main()
{
struct Sqsack L;
Initsqsack(&L);
Push(&L, 1);
Push(&L, 2);
Push(&L, 3);
printf("----------%d\n", Pop(&L));
printf("----------%d\n", Pop(&L));
printf("----------%d\n", Pop(&L));
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");
}
}
int DeQueue(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);
return e;
}
}
int Size(struct Queue Q)
{
return (Q.rear - Q.front + MAX) % MAX;
}
int Empty(struct Queue Q)
{
if (Q.front == Q.rear)
{
return 0;
}
else
{
return 1;
}
}
int Full(struct Queue Q)
{
if ((Q.rear+1) % MAX==Q.front)
{
return 1;
}
else
{
return 0;
}
}
// 栈操作!!!!!!!!!!!
void Initsqsack(struct Sqsack* L)
{
Init(&L->Q1);
Init(&L->Q2);
}
int Emptysqsack(struct Sqsack L)
{
return Empty(L.Q1);
}
void Push(struct Sqsack* L, int e)
{
EnQueue(&L->Q1, e);
}
int Pop(struct Sqsack* L)
{
int e = 0, c = 0;
while (Empty(L->Q1))
{
e = DeQueue(&L->Q1);
if (Empty(L->Q1))
{
EnQueue(&L->Q2, e);
}
}
while (Empty(L->Q2))
{
c = DeQueue(&L->Q2);
EnQueue(&L->Q1, c);
}
return e;
}
两个队列实现栈—c语言
最新推荐文章于 2024-03-31 10:04:30 发布