用 Queue 制作 Stack

记录学习内容。
以下内容和截图大多引用文章。
还不了解,内容可能有错误。

Implement Stack using Queues
https://www.geeksforgeeks.org/implement-stack-using-queue/

方法1:

用两个Queues ,q1、q2
主要是改,push (放东西)的部分。
步骤一 : q2.add(x); ,q2先把x放进去 。
步骤二 : q1 再把所有东西 一个一个放到 q2 。
最後
q1 变成  q2 (有东西的queue)
q2 变成  q1 (没东西的queue)
//达成x 放到 stack top的效果

方法2:

改 pop 的部分 :
把 q1不断 deQueue (取元素) ,存到q2 。 q1留最後一个元素,代表最晚放进去的元素 ,但现在要最早拿出来(因为改成stack),所以不再存到q2 ,直接remove消失掉,才符合stack 。 
最後 在交换q1 q2。

方法3 :

Implement a stack using single queue
https://www.geeksforgeeks.org/implement-a-stack-using-single-queue/

也可以只用一个queue来制作Stack 。

想法就是 原本 的顺序颠倒 。
原本是 1 2 3 4(queue的rear ,代表最後放进来的)

变成 4 3 2 1 (这样1 最早进来的 ,就被当成最後放进来的 ,当queue 要deQueue 时 ,就会是最後一个被deQueue的,达成stack效果)

<<:  防止常见的Web攻击开发方法

>>:  LeetCode - 8 String to Integer (atoi)

【Day28 】 Wordpress custom field ?是什麽来的?该怎麽用?也许您需要这篇文章的帮助

试想想,你现在正在为一间酒店,制作一个网站,您需要为这间酒店加入订房的画面。当然,床数量,有没有浴缸...

Day 14: 人工神经网路初探 激活函数(中)

激活函数 Activation Function 接下上篇,我们继续介绍较为常见的激活函数。 Tan...

[DAY 17] VAE 简介

前言 我们已经知道了可以用一个 Auto Encoder-Decoder 的结构来学习记忆 Inpu...

Gulp bower(1) DAY85

bower??? 什麽是 bower?? https://bower.io/ bower 为前端套...

【从实作学习ASP.NET Core】Day19 | 前台 | 建立前台专案

我们把前台和後台分成两个不同的专案来处理,透过连接到同一个资料库来建立关系。 而今天就来处理前台的部...