📄 stack.h
字号:
//--------------------------//
// //
// 顺序栈类 //
// //
//--------------------------//
#if !defined(_INC_STACK_OO)
#define _INC_Stack_OO
#include<stdlib.h>
template<class T>
class Stack
{
private:
T *data;
int max,top;
public:
Stack(int n=50);
~Stack();
int Size()const;
int Empty()const;
int Full()const;
T Peek()const;
void Push(const T& item);
T Pop();
void Clear();
};
template<class T>
Stack<T>::Stack(int n)
{
data=new T[n];
if(data==NULL)
{
cerr<<"overflow"<<endl;
exit(1);
}
max=n;
top=-1;
}
template<class T>
Stack<T>::~Stack()
{
delete[]data;
}
template<class T>
int Stack<T>::Size()const
{
return(top+1);
}
template<class T>
int Stack<T>::Empty()const
{
if(top==-1)
return(1);
return(0);
}
template<class T>
int Stack<T>::Full()const
{
if(top==max-1)
return(1);
return(0);
}
template<class T>
T Stack<T>::Peek()const
{
if(top==-1)
{ cerr<<"Stack is empty!<<endl";
exit(1);
}
return(data[top]);
}
template<class T>
void Stack<T>::Push(const T& item)
{
if(top==max-1)
{ cerr<<"Stack is full!"<<endl;
exit(1);
}
top++;
data[top]=item;
}
template<class T>
T Stack<T>::Pop()
{
if(top==-1)
{ cerr<<"Pop an empty stack!"<<endl;
exit(1);
}
top--;
return(data[top+1]);
}
template<class T>
void Stack<T>::Clear()
{
top=-1;
}
#endif //_INC_Stack_OO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -