stack.h
来自「本程序是实现二叉树跟树的常用算法」· C头文件 代码 · 共 94 行
H
94 行
template<typename T>class stack;
template<typename T>class stackNode
{
private:
stackNode<T> *next;
T element;
public:
stackNode(T data,stackNode<T> *l){ element=data; next=l; }
friend class stack<T>;
};
template<typename T>class stack{
public:
stack(){ top=NULL;}
~stack();
void Push(T data);
T Pop();
T GetTop();
bool IsEmpty(){ return top==NULL;}
void MakeEmpty();
private:
stackNode<T> *top;
};
template<typename T>stack<T>::~stack()
{
MakeEmpty();
}
template<typename T>void stack<T>::MakeEmpty()
{
stackNode<T> *temp;
while(top!=NULL)
{
temp=top;
top=top->next;
delete temp;
}
}
template<typename T>void stack<T>::Push(T data)
{
stackNode<T> *current;
current=new stackNode<T>(data,top);
top=current;
}
template<typename T>T stack<T>::Pop()
{
assert(!IsEmpty());
stackNode<T> *temp;
T data;
temp=top;
data=temp->element;
top=top->next;
delete temp;
return data;
}
template<typename T>T stack<T>::GetTop()
{
assert(!IsEmpty());
return top->element;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?