使用链表实现堆栈
2015-02-05 15:26
69 查看
#include <iostream> using namespace std; /***********************************/ /* 栈的链式存储结构实际上是一个单链表,叫链栈 插入和删除操作只能在链栈的栈顶进行 */ /***********************************/ #define MaxSize 100 typedef struct Node { int data; struct Node *next; }*pLinkStack, nLinkStack; //链表初始化,创建一个有头结点的链表 pLinkStack CreateLinkStack() { pLinkStack s; s = new nLinkStack; s->next = NULL; return s; } int IsEmptyLinkStack(pLinkStack s) { //判断堆栈s是否为空,若为空则返回1,否则返回0 return (s->next == NULL); } void PushLinkStack(int item, pLinkStack s) { //将元素item压入堆栈s pLinkStack tempCell; tempCell = new nLinkStack; tempCell->data = item; tempCell->next = s->next; s->next = tempCell; //由于头结点的存在 } int PopLinkStack(pLinkStack pS) { //删除并返回堆栈s的栈顶元素 pLinkStack firstCell; int topElem; if ( IsEmptyLinkStack(pS) ) { cout << "LinkStack is empty!" << endl; return NULL; } else { firstCell = pS->next; pS->next = firstCell->next; topElem = firstCell->data; delete firstCell; return topElem; } }
相关文章推荐
- 考研数据结构与算法之堆栈的使用(四)链表实现的堆栈
- 使用链表实现堆栈
- 使用内部单向链表实现的一个简单堆栈
- 链表实现的堆栈程序(仅供自己学习使用)
- 数据结构与算法-----堆栈-使用链表(链式结构)实现
- 使用链表实现堆栈
- 使用链表定义堆栈,实现pop,push
- java用链表实现堆栈和队列
- 使用多链表实现malloc
- 某一天的思考题(使用Java实现链表)的参考答案
- 链表的Java实现(使用内部类作为指针的引用)
- java 实现链表向集合转化使用toArray()
- 用双链表实现的堆栈和队列
- 使用STL之list实现链表逆置
- 用链表实现通用堆栈
- Java泛型类实例,使用链表来实现一个堆栈类
- c语言实现正序链表的创建(不使用头结点)
- 在用链表实现堆栈时遇到的问题
- C#基础之温习--使用列表和链表实现优一个先级队列
- 堆栈与链表与队列代码实现