溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Java怎么用兩個(gè)棧實(shí)現(xiàn)隊(duì)列

發(fā)布時(shí)間:2021-09-01 16:13:42 來(lái)源:億速云 閱讀:114 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容主要講解“Java怎么用兩個(gè)棧實(shí)現(xiàn)隊(duì)列”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Java怎么用兩個(gè)棧實(shí)現(xiàn)隊(duì)列”吧!

題解

描述

棧的特性是先進(jìn)后出,隊(duì)列的特點(diǎn)是先進(jìn)先出,當(dāng)數(shù)字依次入棧1后,依次出棧1并且壓入棧2后,然后再出棧的順序與進(jìn)入棧1的順序是一致的。

因此,進(jìn)入隊(duì)列通過(guò)壓入棧1實(shí)現(xiàn),彈出隊(duì)列通過(guò)彈出棧2的棧頂元素實(shí)現(xiàn),在彈出元素時(shí)需要保證當(dāng)前棧彈出元素的順序和隊(duì)列彈出元素的順序一致,即棧1的元素應(yīng)當(dāng)全部壓入到棧2中。

code

import java.util.Stack;public class Solution {  Stack<Integer> stack1 = new Stack<Integer>();  Stack<Integer> stack2 = new Stack<Integer>();  public void push(int node) {    //直接入stack1棧    stack1.push(node);  }  public int pop() {    //若stack2為空    if(stack2.isEmpty()){     while(!stack1.isEmpty()){       stack2.push(stack1.pop());     }    }     return stack2.pop();  }}

到此,相信大家對(duì)“Java怎么用兩個(gè)棧實(shí)現(xiàn)隊(duì)列”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢(xún),關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI