![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
栈和队列的应用
zhao_miao
冲鸭
展开
-
一个数组实现两个栈(共享栈)(扩容)
一个数组实现两个栈的具体方法:一个数组实现两个栈(共享栈)但是上述方法的缺陷是数组的大小是恒定的,当数组满的时候就无法进行入栈操作。这篇博客我们将讲一下数组如何扩容? 实现方法:一个数组实现两个栈=====>>下标为0的位置为栈1的栈底,栈2的栈底在下标最大的位置上。栈1向左扩展,栈2向后扩展。若数组已满则增容。 首先定义一个共享栈的结构体:#define ...原创 2018-08-26 18:23:01 · 1477 阅读 · 3 评论 -
两个队列实现一个栈
关于两个栈实现一个队列的问题:两个栈实现一个队列 这篇博客我们讲两个队列实现一个栈。栈:后进先出 队列:先进先出 分析: 入栈: 哪一个队列有元素便入哪一个队列。 出栈: 返回栈顶元素: 栈的大小 两个队列的大小之和。 栈判空 两个队列均为空。代码实现: 设置一个栈由两个队列组成。队列为不带头结点的单链表,有两个指针,分...原创 2018-08-26 19:43:09 · 243 阅读 · 0 评论 -
使用两个栈实现一个队列
题目:使用两个栈实现一个队列。 栈:后进先出。 队列:先进先出。 入队列: 直接入栈1。 出队列: 返回队列的队尾元素: 返回队列的队头元素: 队列为空: 栈1为空&&栈2为空。 队列元素个数: 栈1的元素个数+栈2的元素个数。参考代码: 设置一个队列由两个栈组成: typedef struct Queue{原创 2018-08-25 08:46:48 · 3244 阅读 · 0 评论