📄 stack.h
字号:
//类StackNode的声明,该类表示栈的结点
template <class T>
struct StackNode
{
T data;
StackNode* next;
};
//类LinkStack的声明
template <class T>
class LinkStack
{
private:
StackNode<T>* top;
StackNode<T>* temptop;
int size;
public:
LinkStack();
bool Empty();
T GetTop();
void Push(T d);
T Pop();
int Getsize();
};
//类LinkStack内部函数的定义
template <class T>
LinkStack<T>::LinkStack() //构造函数
{
top=NULL;
size=0;
}
template <class T>
int LinkStack<T>::Getsize() //获得结点的数目
{
return size;
}
template <class T>
bool LinkStack<T>::Empty() //判断栈是否为空
{
if (size<=0) return 1;
else return 0;
}
template <class T>
T LinkStack<T>::GetTop() //获得栈顶元素的值
{return top->data;
}
template <class T> //结点入栈
void LinkStack<T>::Push(T d)
{
StackNode<T>* newlink=new StackNode<T>;
newlink->data=d;
newlink->next=top;
top=newlink;
size++;
}
template <class T>
T LinkStack<T>::Pop() //结点出栈
{
if (size==0){
cout <<"Input Error";
cin.clear();
cin.ignore();
char a=cin.get();
exit(0);
}
T Pope=top->data;
temptop=top;
top=top->next;
delete temptop;
size--;
return Pope;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -