#include <iostream>
#include <algorithm>
using namespace std;
template <class T>
void change_size(T* &a, int oldSize, int newSize)
{
T* p = new T[newSize];
int size = min(oldSize,newSize);
copy(a,a+size,p);
delete [] a;
a = p;
}
template <class T>
class MyStack
{
public:
MyStack(int defaultCap = 5);
~MyStack()
{
delete [] stack;
}
void pop(); //出栈
void push(T & item);//入栈
T & Top(); //获取栈顶元素
bool isEmty(); //判断是否为空
private:
int capacity;
int top;
T *stack;
};
template <class T>
MyStack<T>::MyStack(int defaultCap):capacity(defaultCap)
{
top = -1; //栈顶最初的位置设置为-1
stack = new T[capacity]; //申请大小
}
template <class T>
void MyStack<T>::pop()
{
if (isEmty()) throw "stack is empty";
stack[top].~T();
top--;
}
template <class T>
bool MyStack<T>::isEmty()
{
return top == -1;
}
template <class T >
voi
顺序栈
最新推荐文章于 2022-03-17 01:59:56 发布