专业的JAVA编程教程与资源

网站首页 > java教程 正文

「算法」如何用栈实现队列(用栈定义队列)

temp10 2024-09-08 09:39:18 java教程 17 ℃ 0 评论

点击上方关注,每天学习一个java知识点

原创: 小灰 程序员小灰

「算法」如何用栈实现队列(用栈定义队列)




————— 第二天 —————
















————————————







栈的特点是先入后出,出入元素都是在同一端(栈顶):

入栈:



出栈:



队列的特点是先入先出,出入元素是在不同的两端(队头和队尾):

入队:



出队:



既然我们拥有两个栈,那么我们可以让其中一个栈作为队列的入口,负责插入新元素;另一个栈作为队列的出口,负责移除老元素。






队列的主要操作无非有两个:入队和出队。

在模拟入队操作时,每一个新元素都被压入到栈A当中。

让元素1 “入队”:



让元素2 “入队”:




让元素3 “入队”:



这时候,我们希望最先“入队”的元素1“出队”,需要怎么做呢?

让栈A中的所有元素按顺序出栈,再按照出栈顺序压入栈B。这样一来,元素从栈A弹出并压入栈B的顺序是3,2,1,和当初进入栈A的顺序1,2,3是相反的:

此时让元素1 “出队”,也就是让元素1从栈B弹出:



让元素2 “出队”:






让元素4 “入队”:



此时的出队操作仍然从栈B弹出元素。

让元素3 “出队”:






让元素4 “出队”:













Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表