C++ 利用模板类链表实现栈结构
运行环境: Dev-c++ 5.11
日期:2018.10.11
主程序 main.cpp
//Written by Xuebi
//本程序利用链表实现栈结构,实现Pop,Push,Top基本功能
//链表采用前插法构建,不存在空结点
#include <iostream>
using namespace std;
template <class T> class Stack;
template <class T>
class ChainNode
{
friend class Stack<T>;
private:
ChainNode*p;
T data;
ChainNode(T element):data(element),p(0){};
};
template <class T>
class Stack
{
private:
ChainNode<T>*top;
public:
Stack();
~Stack();
T Top();
void Pop();
void Push(const T&element);
bool IfNonEmpty();
void MakeAllEmpty();
};
template <class T>
Stack<T>::Stack()
{
top=0;
}
template <class T>
void Stack<T>::Pop()
{
if(IfNonEmpty())
{
ChainNode<T>*A=top;
top=top->p;
delete A;
}
else