队列模拟栈
栈的特点:先进后出
队列的特点:先进先出
利用栈和队列的特点进行模拟,如下图所示:
主要思想:使用两个队列,第一次向其中一个压入数据,每次要出数据将存数据的队列出到另外一个队列中,留下最后一个数据,将这个数据最终出队列,从而实现队列模拟栈。(注:注定有一个队列为空,每次入数据入到有数据的队列中)
实现
Queue.h文件源码:https://blog.csdn.net/a331683772/article/details/90238944
#pragma once
#include"Queue.h"
typedef int QueueStackType;
typedef struct Stack
{
Queue q1;
Queue q2;
}Stack;
void Stack_Init(Stack* s)
{
assert(s);
QueueInit(&(s->q1));
QueueInit(&(s->q2));
}
void Stack_Push(Stack* s,QueueStackType date)
{
assert(s