利用两个队列实现一个栈
要求:
Push:往非空队列里插入(如果两个队列都是空,选第一个插入)
Pop:从非空队列中 move size - 1 个元素到 空队列中,pop 剩下的一个
Top: 从非空队列中 move size - 1 个元素到 空队列中,返回剩下的一个的值,
把剩下的一个也放入另一个队列中
实现部分
结构体定义
以下代码基于队列的基本操作Queue.h,关于Queue.h请自行在本博客中查找1
2
3
4
5
6
7
typedef struct QStack
{
Queue queue1;
Queue queue2;
}QStack;
初始化
1 | void QStackInit(QStack *pQS) |
销毁
1 | void QStackDestory(QStack *pQS) |
插入
1 | void QStackPush(QStack *pQS,QDataType data) |
删除
1 | void QStackPop(QStack *pQS) |
获取压入的元素
1 | QDataType QStackTop(QStack *pQS) |