📄 linstack.h
字号:
#include"StackNode.h"
template<class T>
class LinStack
{
private:
StackNode<T> *top;
int size;
public:
LinStack(void)
{
top=NULL;
size=0;
};
~LinStack(void)
{
ClearStack();
top=NULL;
};
int StackSize(void)const
{return size;};
int StackEmpty(void)const
{
if(size<=0) return 1;
else return 0;
};
void Push(const T &item);
T Pop(void);
T Peek(void);
void ClearStack(void);
};
template<class T>
void LinStack<T>::Push(const T &item)
{
StackNode<T> *newNode=new StackNode<T>(item,top);
top=newNode;
size++;
}
template<class T>
T LinStack<T>::Pop(void)
{
if(size==0)
{
cout<<"堆栈为空无元素可删!"<<endl;
exit(0);
}
StackNode<T> *p=top->next;
T data=top->data;
delete top;
size--;
top=p;
return data;
}
template<class T>
T LinStack<T>::Peek(void)
{
return top->data;
}
template<class T>
void LinStack<T>::ClearStack(void)
{
StackNode<T> *p,*pl;
p=top;
while(p!=NULL);
{
pl=p;
p=p->next;
delete pl;
}
size=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -