20. 用兩個棧實現(xiàn)隊列 - AcWing題庫
站在用戶的角度思考問題,與客戶深入溝通,找到陸港網站設計與陸港網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、網站設計、企業(yè)官網、英文網站、手機端網站、網站推廣、域名注冊、網站空間、企業(yè)郵箱。業(yè)務覆蓋陸港地區(qū)。232. 用棧實現(xiàn)隊列
目錄
1、java
2、c++
1、java思路:
stk1——輸入棧
stk2——輸出?!驗殛犃惺窍冗M先出,所以一旦要輸出,則把輸入棧中元素存入輸出棧,再輸出,順序就是先進先出
不妨舉一個例子:
【push,push,pop,peek,push,pop】
【1? ? ? ,2? ? ? ,null,null,? 3? ? ? ,null】
java的棧中,stk.pop()——刪除棧頂元素并返回棧頂元素值
java中的棧pop和peek的異同:
相同點:都返回棧頂元素的值
不同點:pop會刪除棧頂?shù)闹?,peek不會刪除
class MyQueue {
Dequestk1=new LinkedList<>();
Dequestk2=new LinkedList<>();
public void push(int x) {
stk1.push(x);
}
public int pop() {
if(stk2.isEmpty())
{
while(!stk1.isEmpty())
stk2.push(stk1.pop());
}
return stk2.pop();
}
public int peek() {
if(stk2.isEmpty())
{
while(!stk1.isEmpty())
stk2.push(stk1.pop());
}
return stk2.peek();
}
public boolean empty() {
return stk1.isEmpty()&&stk2.isEmpty();
}
}
2、c++stk.pop()——僅僅刪除棧頂元素
class MyQueue {
public:
stackstk1,stk2;
void push(int x) {
stk1.push(x);
}
int pop() {
if(stk2.empty())
{
while(!stk1.empty())
{
stk2.push(stk1.top());
stk1.pop();
}
}
int x=stk2.top();
stk2.pop();
return x;
}
int peek() {
int x=this->pop();
stk2.push(x);
return x;
}
bool empty() {
return stk1.empty()&&stk2.empty();
}
};
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
網頁標題:數(shù)據結構-用兩個棧實現(xiàn)隊列-java版+c++版-創(chuàng)新互聯(lián)
網頁地址:http://aaarwkj.com/article16/dpjodg.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供用戶體驗、App設計、App開發(fā)、手機網站建設、網站設計公司、外貿網站建設
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容