Skip to content

stack 堆疊

有兩個端口,其中一個封閉,另一個端口負責插入、刪除的資料結構

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
struct stack
{
    int st[N], top;
    Stack() : top(0) {}
    int size() { return top; }
    void push(int x) { st[++top] = x; }
    int top() { assert(top > 0) return st[top]; }
    void pop()
    {
        if (top)
            --top;
    }
}
  • 標頭檔: <stack>
  • 建構式: stack <T> s
  • s.push(T a) :插入頂端元素,複雜度
  • s.pop() :刪除頂端元素,複雜度
  • s.top() :回傳頂端元素,複雜度
  • s.size() :回傳元素個數,複雜度
  • s.empty() :回傳是否為空,複雜度
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <stack>
using namespace std;

int main()
{
    stack<int> st;
    st.push(1);
    cout << st.top() << '\n';
    st.push(2);
    cout << st.top() << '\n';
    st.push(3);
    cout << st.top() << '\n';
    st.pop();
    cout << st.top() << '\n';
}

/*
1
2
3
2
*/