大家如果发现代码有错误,麻烦评论告知一下!!!

代码如下:

#include <iostream>
using namespace std;const int STACK_INIT_SIZE = 100;
const int STACKINCREMENT = 10;typedef int ElemType;typedef struct
{ElemType *base;ElemType *top;int stacksize;
}SqStack;bool initStack(SqStack &s)
{s.base = new ElemType[STACK_INIT_SIZE];if (!s.base) return false;s.top = s.base;s.stacksize = STACK_INIT_SIZE;return true;
}bool destroyStack(SqStack &s)
{delete[] s.base;s.base = s.top = nullptr;s.stacksize = 0;return true;
}bool clearStack(SqStack &s)
{s.top = s.base;return true;
}bool stackEmpty(SqStack s)
{if (s.top == s.base) return true;return false;
}int stackLength(SqStack s)
{return s.top - s.base;
}bool getTop(SqStack s, ElemType &e)
{if (s.top == s.base) return false;e = *(s.top - 1);return true;
}bool push(SqStack &s, ElemType e)
{if (s.top - s.base >= s.stacksize){ElemType *q = new ElemType[STACK_INIT_SIZE + STACKINCREMENT];if (!q) return false;ElemType *p = s.base;int i = 0;while (p != s.top){q[i++] = *p;p++;}delete[] s.base;s.base = q;s.top = s.base + s.stacksize;s.stacksize += STACKINCREMENT;}*s.top++ = e;return true;
}bool pop(SqStack &s, ElemType &e)
{if (s.top == s.base) return false;e = *--s.top;return true;
}void vis(ElemType a)
{cout << a << " ";
}void stackTraverse(SqStack s, void(*visit)(ElemType))
{ElemType *q = s.base;while (q!=s.top){visit(*q);q++;}
}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);return 0;
}

[数据结构-严蔚敏版]P46栈的顺序存储表示相关推荐

  1. [数据结构-严蔚敏版]P48栈的链式表示

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

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

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

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

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

  4. [数据结构-严蔚敏版]P64循环队列-队列的顺序存储结构

    代码如下: #include <iostream> using namespace std;const int MAXQSIZE = 10;typedef int ElemType;typ ...

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

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

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

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

  7. 【数据结构 严蔚敏版】 查找基本操作

    顺序查找过程:从表中的最后一个记录开始,逐个进行记录的关键字与给定值进行比较,若某个记录的关键字与给定值相等,则查找成功,找到所查的记录:反之,若直到第一个记录,其关键字和给定值比较都不相等,则表明表 ...

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

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

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

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

最新文章

  1. 支付宝扫一下就能体验的深度学习模型
  2. 用户变量和系统变量的区别是什么?
  3. 20145303 《信息安全系统设计基础》第3周学习总结
  4. Oracle RMAN Recover中使用BBED 跳过缺失的归档 继续 Recover 的测试
  5. 13.Excel业务建模——RFM模型
  6. git 修改默认分支为main_Git:基本操作
  7. Android加密算法之AES加密和解密实现
  8. 剑指offer——面试题55:字符流中第一个不重复的字符
  9. http://nuyd.eastmoney.com/EM_UBG_PositionChangesInterface/api/js?rows=64page=9
  10. 根据业务单生成时将描扫记录触发到临时表(SQL触发)
  11. 流体力学matlab例题,流体力学简单计算MATLAB程式
  12. 计算机类毕业设计评语导师评语,毕业设计导师评语
  13. c语言单片机编程 实例教程,51单片机的C语言编程基础及实例教程
  14. SDL —— SDL_ttf
  15. 通过对抗网络实现具有身份和姿态鲁棒性的表情识别
  16. 追踪ws的怪蜀黍(DFS)
  17. 从《道德经》看项目经理修炼的7条法则,你做到了几条?
  18. Maltab生成棋盘格
  19. excel制作跨职能流程图_excel制作流程图的方法步骤图
  20. 基于java的物流信息管理系统(计算机毕业设计)

热门文章

  1. ArcGIS实验教程——实验十一:影像拼接与提取
  2. 地图投影系列介绍(四)----投影坐标系
  3. C语言试题六十一之请编写函数fun:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。
  4. Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试
  5. 字符串之括号的有效性
  6. Android之自定义ContentProvider详解
  7. 【C语言简单说】七:自定义函数(3)
  8. d类功放芯片_应用于无滤波级D类音频功放的新型死区时间控制系统
  9. java ecc 加密_java-信息安全(十一)-非对称加密算法002-ECC,签名003-ECDSA签名
  10. 炸了!刚刚数学家获得了2020年诺贝尔物理学奖!没想到诺奖也能蝉联.......