📄 linkstack.h
字号:
#include"Stack.h"
template<class T>
struct Node
{
T data;
Node<T> *pNext;
};
template<class T>
class LinkStack: public Stack<T>
{
private: //属性
Node<T> *m_pTop;
int m_num;
//methods
bool Create(int max=0)
{
m_pTop=NULL;
m_num=0;
return true;
}
public:
bool IsEmpty()const
{
return m_num<=0;
}
bool IsFull()const
{
Node<T> *p=new Node<T>;
delete p;
if(p)
return false;
else
return true;
}
void Pop()
{
Node<T> *p=m_pTop;
m_pTop=p->pNext;
delete p;
m_num--;
}
void Push(T &x)
{
Node<T> *p=new Node<T>;
p->data=x;
p->pNext=m_pTop;
m_pTop=p;
m_num++;
}
T Top()const
{
return m_pTop->data;
}
LinkStack()
{
Create();
}
~LinkStack()
{
if(IsEmpty()==0)
{
Node<T> *p;
for(int i=0;i<m_num,p=m_pTop->pNext;i++)
{
delete m_pTop;
m_pTop=p;
}
}
else
{}
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -