[数据结构-严蔚敏版]P48栈的链式表示
代码如下:
#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栈的链式表示相关推荐
- [数据结构-严蔚敏版]P46栈的顺序存储表示
大家如果发现代码有错误,麻烦评论告知一下!!! 代码如下: #include <iostream> using namespace std;const int STACK_INIT_SIZ ...
- 数据结构实验(严蔚敏版)----栈与队列
数据结构(严蔚敏版)配套实验报告册--栈与队列基本操作 #include <stdio.h> #include <malloc.h> #include <stdlib.h ...
- 严蔚敏数据结构C语言版——线性表的链式存储方式详细代码
一.严蔚敏数据结构C语言版 由于书上的许多地方都是伪代码,所以下面的代码对课本上的做了一些改动,使代码能够正常运行 链表的定义即相关类型定义 typedef int ElementType; type ...
- 有关数据结构基础知识(数据结构 严蔚敏版)
1. 数据结构是一门研究非数值计算程序设计中的操作对象 以及这些对象之间的关系和操作的学科 2. 研究包括逻辑结构和存储结构 1) 逻辑结构(从具体问题抽象出来的数学模型)分为 集合结构 线性结构 树 ...
- 队列链式结构C/C++实现(数据结构严蔚敏版)
1.头文件Queue.h; #include<iostream> #include<iomanip>//格式控制头文件 #include<stdlib.h> usi ...
- 栈C/C++实现(数据结构严蔚敏版)
1.头文件:stack.h #include<iostream> #include<malloc.h> using namespace std; typedef int Sta ...
- [数据结构-严蔚敏版]P61ADT Queue的表示与实现(单链队列-队列的链式存储结构)
代码如下: #include <iostream> using namespace std;typedef int ElemType;typedef struct QNode {ElemT ...
- 数据结构(严蔚敏版)习题集第三章课后标新号习题答案
#include<iostream> #include<cctype> using namespace std; /****预定义****/ #define STACK_INI ...
- 字符串静态顺序结构C/C++实现(数据结构严蔚敏版)
1.头文件String.h #include<stdio.h> #include<stdlib.h> #include<string.h> #include< ...
最新文章
- python拿什么做可视化界面好-手把手教你用Python做个可视化的“剪刀石头布”小游戏...
- 高端技巧:怎样使用#define定义变量
- UDP成为低延时流媒体关键 选SRT还是QUIC?
- php redis 扩展 常用方法
- linux 数据转换
- c语言中的break和continue
- 给手机浏览器减负 轻装上阵才能速度制胜
- html5 字母索引,jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
- win10子系统 php,启用 Win10 的 Linux 子系统
- win7c盘空间越来越小_电脑一分钟小技巧:如何更改电脑桌面路径?
- 理解Dubbo的调用流程与Dubbo多协议解析
- C++教程:C++工程构建常用工具有哪些?
- 试用版SQL Server 2008提示评估期已过 解决办法
- git管理工具从网上检索下来的项目没有绿色对勾
- Excel VBA 设计调查问卷
- python是什么语言简称为_python为何称为胶水语言
- 【机器人】大四本科生发明 自动写作论文的机器人
- redis的原理和源码-数据持久化方式AOF的介绍和源码解析
- 攻防世界-Web-练习区12题解
- 2016-8-17晨型养成第二天
热门文章
- SQL 数据库远程备份 语句
- 回溯算法之购物车(0-1 背包问题)
- LeetCode之Keyboard Row
- 汇编语言之转移指令和原理
- 链表之删除链表a/b处的节点
- php基础教程 第四步 学习运算符
- 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
- 中英文标点符号切换的组合键_易混标点符号:一字线(—)、短横线(-)、浪纹线(~)...
- android studio button位置_免费的Android开发环境
- 这些全国各地甜点,你都吃过了吗?