堆栈的链表实现
2013-12-11 10:01
155 查看
#include <iostream>
#include <iomanip>
using namespace std;
typedef class List
{
public:
int data;
class List* next;
}Node,*Link;
//指向堆栈顶端的指针
Link top=NULL;
//判断是否为空堆栈
bool IsEmpty()
{
if(NULL==top)
return true;
return false;
}
void push(int data)
{
Link AddNode=new Node; //新加入结点的指针
AddNode->data=data;
AddNode->next=top; //将新结点指向堆栈的顶端
top=AddNode; //新结点成为堆栈的顶端
}
int pop()
{
if(IsEmpty())
{
cout<<"目前为空堆栈"<<endl;
return -1;
}
Link Pointer=top; //指向堆栈的顶端
top=top->next; //将堆栈顶端的指针指向下一个结点
int tmp=Pointer->data; //取出堆栈数据
delete Pointer; //将结点占用的内存空间释放
return tmp;
}
int main()
{
int value;
cout<<" 堆栈的链表实现\n\n";
cout<<" 请输入5个数字:";
for(int i=0;i<5;i++)
{
cin>>value;
push(value);
}
cout<<"\n 从堆栈取出数据:";
cout<<"\n===================\n";
while(!IsEmpty())
{
cout<<" 堆栈弹出的数据为:"<<setw(2)<<pop()<<endl;
}
cout<<"\n\n";
return 0;
}
相关文章推荐
- 使用链表实现堆栈
- Java中链表、堆栈、队列、二叉树、散列表等数据结构的实现
- 下压堆栈 (链表实现)
- 下压堆栈的链表实现(LIFO)
- 堆栈的单链表实现
- 堆栈的实现(LIFO、链表)
- java用链表实现堆栈和队列
- 用链表实现堆栈--链式栈
- 数据结构-堆栈-链表实现
- 用链表实现堆栈
- 递归,迭代,堆栈三种方式实现单链表反转(C++)
- 堆栈用链表实现压栈和出栈
- 堆栈之链表实现
- 使用链表定义堆栈,实现pop,push
- 堆栈的两种实现形式:数组和链表
- java数据结构-链表实现堆栈 控制插入的方式,成为有序链表
- 数据结构学习---堆栈的动态数组实现及链表实现
- 堆栈的基本操作(用链表实现)
- 数据结构学习---堆栈的动态数组实现及链表实现
- 基于链表实现堆栈