用佇列在 C++ 中實現堆疊
假定我們想用佇列實現一個堆疊。那麼,我們必須為這個堆疊定義如下方法。
push(x) − 將 x 壓入堆疊中。
pop() − 刪除堆疊中頂部元素並返回。
top() − 返回堆疊中頂部元素。
empty() − 返回堆疊是否為空。
因此,如果我們呼叫 push(10)、push(20) 這兩個函式,然後呼叫 pop()、pop(),則輸出將是 20、10
為了解決這個問題,我們將遵循以下步驟 −
定義一個雙端佇列 q
定義一個函式 push(),它將獲取 x
將 x 插入到 q 的開頭
定義一個函式 pop()
k := q 的第一個元素
刪除 q 的前端元素
返回 k
定義一個函式 top()
返回 q 的第一個元素
定義一個函式 empty()
如果 q 為空,則 −
返回 true
否則
返回 false
示例
讓我們看看以下實現,以便對之有一個更好的理解 −
#include <bits/stdc++.h>
using namespace std;
class MyStack {
private:
deque<int> q;
public:
void push(int x){
q.push_front(x);
}
int pop(){
int k = q.front();
q.pop_front();
return k;
}
int top(){
return q.front();
}
bool empty(){
if (q.empty())
return true;
else
return false;
}
};
main(){
MyStack ob;
ob.push(10);
ob.push(20);
cout << (ob.pop()) << endl;
cout << (ob.pop()) << endl;
}輸入
push(10),push(20),pop(),pop()
輸出
20 10
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP