📄 stack.h
字号:
#include "debug.h"//还是书上的,一点没变
template <class T>
class Node
{
public:
T data;
Node<T> *link;
protected:
private:
};
template<class T>
class Stack //操作数
{
public:
Stack(){top=0;}
~Stack();
bool IsEmpty()const{return top==0;}
bool IsFull()const;
T Top()const;
Stack<T>& Add(const T&x);
Stack<T>&Delete(T&x);
protected:
private:
Node<T>*top;
};
template<class T>
Stack<T>::~Stack()
{
Node<T>*next;
while (top)
{
next=top->link;
delete top;
top=next;
}
}
template<class T>
bool Stack<T>::IsFull()const
{
try
{
Node<T> *p=new Node<T>;
delete p;
return false;
}
catch (NoMen)
{
return true;
}
}
template<class T>
T Stack<T>::Top()const
{
if(IsEmpty())throw OutOfBounds();
return top->data;
}
template<class T>
Stack<T>& Stack<T>::Add(const T&x)
{
Node<T>*p=new Node<T>;
p->data=x;
p->link=top;
top=p;
return *this;
}
template<class T>
Stack<T>&Stack<T>::Delete(T&x)
{
if (IsEmpty())throw OutOfBounds();
x=top->data;
Node<T>*p=top;
top=top->link;
delete p;
return *this;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -