【基本数据结构】栈/stack/LIFO

类模板 #pragma once#include templatetypename Type, int MAXSIZE>class stack{pr

类模板

#pragma once
#include 
template<typename Type, int MAXSIZE>
class stack
{
private:Type* info;int top_;//first elements at info[top - 1];
public:stack() {info = new Type[MAXSIZE];top_ = 0;}~stack() {delete[] info;}bool empty() {return (!top_);}int size() {return top_;}Type top() {assert(top_);return info[top_ - 1];}void push(Type ins) {assert(top_ < MAXSIZE - 1);info[top_++] = ins;}void pop() {assert(top_);top_--;}
};

ACM简单实现

const int MAXSIZE = 10;
int info[MAXSIZE + 1], top = 0;
inline void push(int ins) {info[top++] = ins;
}
inline void pop() { top--; }

STL实现

#include 
#include 
using namespace std;int main()
{stack<int> arr;arr.push(1);arr.push(2);cout << arr.top() << endl;cout << arr.size() << endl;cout << arr.empty() << endl;arr.pop();return 0;
}