数据结构之链栈(参考整理严蔚敏数据结构)
来源:互联网 发布:java 垃圾回收算法 编辑:程序博客网 时间:2024/06/05 16:40
#include<iostream>using namespace std;#define InitStack InitList #define DestroyStack DestroyList#define ClearStack ClearList#define StackEmpty ListEmpty#define StackLength ListLength#define GetTop GetFirstElem#define Push HeadInsert#define Pop HeadDelete#define StackPrint ListPrinttypedef int ElemType;typedef struct Node{ElemType data;Node *pNext;}Node, *Link;typedef Link Stack;void InitList(Link &L){L = new Node;L->pNext = NULL;}void DestroyList(Link &L){Link p = NULL;while (L){p = L->pNext;delete L;L = p;}}void ClearList(Link &L){//只留下一个头结点Link p = NULL, q = NULL;p = L->pNext;while (p)//p==pTail->pNext时退出{q = p->pNext;delete p;p = q;}L->pNext = NULL;}bool ListEmpty(Link L){if (L->pNext)return false;elsereturn true;}int ListLength(Link L){int i = 0;Link p = L->pNext;while (p){++i;p = p->pNext;}return i;}void HeadInsert(Link L, ElemType e){// 初始条件:线性表L已存在.//操作结果:在L的头部插入新的数据元素e,作为链表的第一个元素Link s = NULL;s = new Node;s->data = e;s->pNext = L->pNext;L->pNext = s;}bool HeadDelete(Link L, ElemType &e){Link p = L->pNext;if (p){e = p->data;L->pNext = p->pNext;delete p;p = NULL;return true;}else//空表return false;}bool GetFirstElem(Link L, ElemType &e){Link p = L->pNext;if (!p) // 空表return false;else // 非空表{e = p->data;return true;}}void ListPrint(Link L){Link p = L->pNext;while (p){cout << p->data << " ";p = p->pNext;}cout << endl;}int main(void){Stack S = NULL;ElemType e;InitStack(S);Push(S, 1);Push(S, 2);Push(S, 3);Push(S, 4);Push(S, 5);StackPrint(S);Pop(S, e);StackPrint(S);cout << StackLength(S) << endl;if (!StackEmpty(S))cout << "Not Empty!" << endl;GetTop(S, e);cout << e << endl;return 0;}
0 0
- 数据结构之链栈(参考整理严蔚敏数据结构)
- 数据结构之双向循环链表(参考整理严蔚敏数据结构)
- 数据结构之实用单链表(参考整理严蔚敏数据结构)
- 数据结构之简单选择排序(参考整理严蔚敏数据结构)
- 数据结构之有向无环图邻接表利用栈实现拓扑排序(参考整理严蔚敏数据结构)
- 数据结构之设置尾指针的单向循环链表(参考整理严蔚敏数据结构)
- 数据结构之单链表(参考并整理严蔚蓝数据结构)
- 数据结构之无向图邻接表DFS之查询遍历关节点(参考整理严蔚敏数据结构)
- 数据结构之交换排序之快速排序(参考整理严蔚敏数据结构)
- 数据结构之插入排序之希尔排序(缩小增量排序)—参考整理严蔚敏数据结构
- 数据结构之三元组顺序表实现稀疏矩阵运算(参考整理严蔚敏数据结构)
- 数据结构之有向网邻接表实现拓扑与关键活动(参考整理严蔚敏数据结构)
- 数据结构之插入排序(直插,折半插,2路插)—参考整理严蔚敏数据结构
- 数据结构之顺序串(整理严蔚敏数据结构)
- 数据结构之顺序表(部分参考C博客—文逗,整理和参考严蔚敏版数据结构)
- 数据结构之选择排序之堆排序(参考严蔚敏数据结构)
- 数据结构交换排序之起泡排序(参考严蔚敏数据结构)
- 数据结构之线索二叉树(整理严蔚敏数据结构)
- 数据库创建联合主键(MySql)
- 一些困难,一些感悟,一些收获
- Delphi调用DLL中的接口
- 【博弈】【GH游戏】
- 织梦Dedecms模板文件介绍 织梦标签大全(完整版)
- 数据结构之链栈(参考整理严蔚敏数据结构)
- POJ 1321 棋盘问题
- SQLite学习手册(数据表和视图)
- 2440(ARM9)中Ucos移植相关
- Android - Studio Gradle下载缓慢的解决办法 (Mac)
- CH Round #57 - Story of the OI Class 凯撒密码
- Oracle存储过程中使用临时表
- 鸟哥Linux私房菜知识点总结0到2章
- The 2013 South America/Brazil Regional Contest 题解