Stack、Queue
栈:后进先出,只可插入或取出栈顶元素
队列:先进先出,只可取出队首元素,插入队尾元素
栈和队列的实现很相似,两种数据结构是否可以互相转换?
答案是肯定的,栈与队列相互转换可以加深栈与队列的理解
Stack->Queue
用栈实现队列—>用后进先出实现先进先出
方案:利用两次后进先出(栈)即可实现先进先出(队列)
比较简单,直接看图应该就可以看懂如何实现,如图:
Queue->Stack
用队列实现栈—>用先进先出实现后进先出
方案:利用两次先进先出(队列)实现后进先出(栈)
1 需要两个队列,两个队列指针,初始:队列指针(out)指向队列1,队列指针(in)指向队列2
2 首先数据元素全部进入队列out
3 需要弹出一个元素,队列out中N-1个数据进入队列in,将队列out的元素出队
4 in 与 out 交换指向队列
需要弹出元素 重复 2-4步骤
如图:
本文探讨了数据结构中栈和队列的特性,并详细解释了如何通过两次使用栈实现队列的功能,以及如何利用两个队列实现栈的后进先出特性。这不仅加深了对这两种基本数据结构的理解,还提供了实际的转换方法。
1221

被折叠的 条评论
为什么被折叠?



