用兩個(gè)棧來(lái)實(shí)現(xiàn)一個(gè)隊(duì)列,完成隊(duì)列的Push和Pop操作。 隊(duì)列中的元素為int類(lèi)型
- 隊(duì)列和棧是受限制的線(xiàn)性表,棧是后進(jìn)先出,隊(duì)列是先進(jìn)后出。
- 數(shù)據(jù)先進(jìn)棧,然后出棧進(jìn)第二個(gè)棧的順序正好與隊(duì)列一致。但是不能考慮在實(shí)際操作過(guò)程中,進(jìn)隊(duì)與出隊(duì)交替進(jìn)行的情況。
- 這對(duì)隊(duì)列的Pop()操作提出了要求,要保持隊(duì)列的出隊(duì)順序的一致,必須要求
- 如果第二個(gè)棧有內(nèi)容,可以直接pop()
- 如果第二個(gè)棧為空,必須把第一個(gè)棧里面的全部?jī)?nèi)容放到第二個(gè)棧,才能pop()
public class Solution {
Stack<Integer> stack1 = new Stack<Integer>();
Stack<Integer> stack2 = new Stack<Integer>();
public void push(int node) {
stack1.push(node);
}
public int pop() {
if(!stack2.empty()) {
return stack2.pop();
} else {
while(!stack1.empty()) {
stack2.push(stack1.pop());
}
return stack2.pop();
}
}
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。