代码如下:

#include <iostream>
using namespace std;typedef int ElemType;typedef struct SNode
{ElemType data;SNode *next;
}SNode;typedef struct
{SNode *top;
}SqStack;bool initStack(SqStack &s)
{s.top = nullptr;return true;
}bool destroyStack(SqStack &s)
{SNode *q = nullptr;while (s.top){q = s.top;s.top = s.top->next;delete q;}s.top = nullptr;return true;
}bool stackEmpty(SqStack s)
{if (!s.top) return true;return false;
}int stackLength(SqStack s)
{int j = 0;SNode *q = s.top;while (q){j++;q = q->next;}return j;
}bool getTop(SqStack s, ElemType &e)
{if (s.top){e = s.top->data;return true;}return false;
}bool push(SqStack &s, ElemType e)
{SNode *q = new SNode;if (!q) return false;q->data = e;q->next = s.top;s.top = q;return true;
}bool pop(SqStack &s, ElemType &e)
{if (s.top){SNode *q = s.top;s.top = s.top->next;e = q->data;delete q;return true;}return false;
}void vis(ElemType e)
{cout << e << " ";
}void stackTraverse(SqStack s, void(*visit)(ElemType))
{SNode *q = s.top;SqStack s1;initStack(s1);while (q){push(s1, q->data);q = q->next;}ElemType a;while (!stackEmpty(s1)){pop(s1, a);visit(a);}destroyStack(s1);
}int main()
{SqStack s;initStack(s);int n;int a;cin >> n;for (int i = 0; i < n; i++){cin >> a;push(s, a);}getTop(s, a);cout << "a = " << a << endl;stackTraverse(s, vis);cout << endl;pop(s, a);pop(s, a);stackTraverse(s, vis);cout << endl;cout << stackLength(s) << endl;return 0;
}

[数据结构-严蔚敏版]P48栈的链式表示相关推荐

  1. [数据结构-严蔚敏版]P46栈的顺序存储表示

    大家如果发现代码有错误,麻烦评论告知一下!!! 代码如下: #include <iostream> using namespace std;const int STACK_INIT_SIZ ...

  2. 数据结构实验(严蔚敏版)----栈与队列

    数据结构(严蔚敏版)配套实验报告册--栈与队列基本操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h ...

  3. 严蔚敏数据结构C语言版——线性表的链式存储方式详细代码

    一.严蔚敏数据结构C语言版 由于书上的许多地方都是伪代码,所以下面的代码对课本上的做了一些改动,使代码能够正常运行 链表的定义即相关类型定义 typedef int ElementType; type ...

  4. 有关数据结构基础知识(数据结构 严蔚敏版)

    1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科 2. 研究包括逻辑结构和存储结构 1) 逻辑结构(从具体问题抽象出来的数学模型)分为 集合结构 线性结构 树 ...

  5. 队列链式结构C/C++实现(数据结构严蔚敏版)

    1.头文件Queue.h; #include<iostream> #include<iomanip>//格式控制头文件 #include<stdlib.h> usi ...

  6. 栈C/C++实现(数据结构严蔚敏版)

    1.头文件:stack.h #include<iostream> #include<malloc.h> using namespace std; typedef int Sta ...

  7. [数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)

    代码如下: #include <iostream> using namespace std;typedef int ElemType;typedef struct QNode {ElemT ...

  8. 数据结构(严蔚敏版)习题集第三章课后标新号习题答案

    #include<iostream> #include<cctype> using namespace std; /****预定义****/ #define STACK_INI ...

  9. 字符串静态顺序结构C/C++实现(数据结构严蔚敏版)

    1.头文件String.h #include<stdio.h> #include<stdlib.h> #include<string.h> #include< ...

最新文章

  1. python拿什么做可视化界面好-手把手教你用Python做个可视化的“剪刀石头布”小游戏...
  2. 高端技巧:怎样使用#define定义变量
  3. UDP成为低延时流媒体关键 选SRT还是QUIC?
  4. php redis 扩展 常用方法
  5. linux 数据转换
  6. c语言中的break和continue
  7. 给手机浏览器减负 轻装上阵才能速度制胜
  8. html5 字母索引,jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
  9. win10子系统 php,启用 Win10 的 Linux 子系统
  10. win7c盘空间越来越小_电脑一分钟小技巧:如何更改电脑桌面路径?
  11. 理解Dubbo的调用流程与Dubbo多协议解析
  12. C++教程:C++工程构建常用工具有哪些?
  13. 试用版SQL Server 2008提示评估期已过 解决办法
  14. git管理工具从网上检索下来的项目没有绿色对勾
  15. Excel VBA 设计调查问卷
  16. python是什么语言简称为_python为何称为胶水语言
  17. 【机器人】大四本科生发明 自动写作论文的机器人
  18. redis的原理和源码-数据持久化方式AOF的介绍和源码解析
  19. 攻防世界-Web-练习区12题解
  20. 2016-8-17晨型养成第二天

热门文章

  1. SQL 数据库远程备份 语句
  2. 回溯算法之购物车(0-1 背包问题)
  3. LeetCode之Keyboard Row
  4. 汇编语言之转移指令和原理
  5. 链表之删除链表a/b处的节点
  6. php基础教程 第四步 学习运算符
  7. 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
  8. 中英文标点符号切换的组合键_易混标点符号:一字线(—)、短横线(-)、浪纹线(~)...
  9. android studio button位置_免费的Android开发环境
  10. 这些全国各地甜点,你都吃过了吗?