链式栈
链式栈的概念
链式栈就是单链表,受限制的单链表,一般不需要头结点。
作用
1.保存临时数据(栈帧)
实现代码
#include <iostream>
#include<string>
using namespace std;
//链式栈中每个节点的定义
template <typename T>
struct StackNode
{
T data;//数据域
StackNode<T>* next;//指向个下一个同类型的节点
};
//链式栈的定义
template <typename T>
class LinkStack
{
public:
LinkStack();//构造函数
~LinkStack();//析构函数
bool Push(const T& e);//入栈操作
bool Pop(T& e);//出栈操作
bool GetTop(T& e);//获取栈顶元素
void DisplayLinkStack();//扫描输出链式栈
bool Empty();//判断链式栈是否为空栈
int ListLength();//返回链式栈长度
private:
int m_length;//栈长度
StackNode<T>* m_top;//栈顶地址(指针)
};
template <typename T>
LinkStack<T>::LinkStack()
{
int m_length = 0;//初始化栈的长度为0
m_top = nullptr;//栈顶指针为空指针
}
template <typename T>
LinkStack<T>::~LinkStack