数据结构《链式栈的存储》
来源:互联网 发布:东南亚旅游推荐 知乎 编辑:程序博客网 时间:2024/06/05 19:31
链式栈的实现
#include<iostream>
using namespace std;
template<class T>
struct Node
{
T data;
Node<T> *next;
};
template<class T>
class LinkStack
{
private:
Node<T>* top;
public:
LinkStack(){top=NULL;}
~LinkStack();
void Push(T x);//元素X入栈
T Pop();//栈顶元素出栈
T GetTop();//取栈顶元素
int StackEmpty();//测栈空
void ClearStack();//清除栈
void StackTranverse();//输出栈中元素
};
template<class T>
LinkStack<T>::~LinkStack()
{
Node<T>* q;
while(top)
{
q=top;
top=top->next;
delete q;
}
}
template<class T>
void LinkStack<T>::Push(T x)
{
Node<T> *s=new Node<T>;
s->data=x;
s->next=top;
top=s;
}
template<class T>
T LinkStack<T>::Pop()
{
T x;
Node<T>* p;
if(top==NULL)throw"下溢";
x=top->data;
p=top;
top=top->next;
delete p;
return x;
}
template<class T>
T LinkStack<T>::GetTop()
{
if(top==NULL)throw"栈中没有元素";
return top->data;
}
template<class T>
int LinkStack<T>::StackEmpty()
{
if(top==NULL)
return 1;
else
return 0;
}
template<class T>
void LinkStack<T>::ClearStack()
{
if(top==NULL)throw"没有内容";
else
{
top=NULL;
}
}
template<class T>
void LinkStack<T>::StackTranverse()
{
if(top==NULL)
cout<<"链表中为空!"<<endl;
Node<T> *p=top;
while(p)
{
cout<<"链式栈中的元素! "<<p->data<<endl;
p=p->next;
}
}
void main()
{
LinkStack<int> Link;
Link.Push(5);
Link.Push(6);
Link.StackTranverse();
Link.GetTop();
Link.StackTranverse();
cout<<"取出的栈顶元素"<<Link.Pop()<<endl;
Link.StackTranverse();
Link.ClearStack();
Link.StackTranverse();
}
- 数据结构《链式栈的存储》
- 数据结构 - 栈的链式存储
- 数据结构-栈的链式存储
- 数据结构---栈---链式存储
- 数据结构(栈):栈的链式存储结构
- 常用数据结构之链式存储的栈
- 数据结构四栈的链式存储结构
- 数据结构:栈的链式存储结构
- 【数据结构基础】栈的链式存储结构
- 数据结构之栈的链式存储结构
- 数据结构:栈的链式存储结构
- 数据结构的链式存储结构
- 数据结构的链式存储结构
- 数据结构-【栈】的链式存储和顺序存储
- 数据结构-栈的顺序存储和链式存储
- JAVA版数据结构之栈的链式存储实现
- Python 数据结构 之 栈 的顺序、链式存储结构
- 企业级数据结构-栈的链式存储设计与实现
- QT 常见设置
- jira 创建问题时发生错误 && QC 没有注册类别
- kernel 启动过程之三, start_kernel()函数 概叙!init/main.c .
- linux的用户管理
- uva 工具网站
- 数据结构《链式栈的存储》
- ubuntu server 下安装nginx
- 十一月绝对热点:IT产业11大失意得意
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 得到正在运行程序的uid和svm相关的参数
- Android常用功能
- Oracle 处理空值
- 淘宝网架构师岳旭强的年度展望
- Html4和Html5之间有什么区别,Html5有什么新功能