C++ 数据结构 (四) 栈与队列 (1) 栈接口与实现

Posted by Oscaner on December 2, 2018

操作与接口

1.png

操作实例

LIFO: Last In First Out

2.png

实现

栈既然属于序列的特例,故可直接基于向量或列表派生

1
2
3
4
5
6
7
template <typename T>
class Stack : public Vector<T> { // 由向量派生
  public: // size()、empty() 以及其他开放接口均可直接沿用
    void push(T const &e) { insert(size(), e); } // 入栈
    T pop() { return remove(size() - 1); } // 出栈
    T &top() { return (*this)[size() - 1]; } // 取顶
}; // 以向量 首/末 端为栈 底/顶

本文由 Oscaner 创作, 采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外, 均为本站原创或翻译, 转载前请务必署名