其实我们都了解栈的定义,会感觉很简单。但是需要动手打一下代码才知道实现的方式。

简单说一下定义:

栈是限定仅在表的一端进行插人和删除操作的线性表,允许 插人和删除的一端称为栈顶(stack top),另一端称为栈底(stack bottom),不含任何数据元素的栈称为空栈。

任何时刻出栈的元素都只 能是栈顶元素,即最后入栈者最先出栈,所以栈中元素除了具有线性关系外,还具有后进 人栈。

下面说一下顺序栈的代码:

实现的功能:

  • 初始化InitStack
  • 判空Empty
  • 进栈Push
  • 出栈Pop
  • 读栈顶元素GetTop
  • 遍历栈PrintStack
  • 销毁栈DestroyStack
#include<iostream>
using namespace std;
const int StackSize=10;
class SepStack
{public:SepStack(){//初始化,InitStack top=-1;};~SepStack(){//销毁栈,DestroyStack top=-1;cout<<"end";};void Push(int x){//入栈 if(top==StackSize-1){cout<<"栈满";return; };data[++top]=x;};int Pop(){//出栈 int x;if(top==-1){cout<<"栈空"<<endl;return 0; };x=data[top--];return x;};int GetTop(){//读取 int x;if(top==-1){cout<<"栈空"<<endl;return 0; };x=data[top];return x;};bool Empty(){//判断 if(top==-1)return false;elsereturn true;};void PrintStack(){while(top!=-1){cout<<data<<" ";}cout<<endl;} private:int data[StackSize];int top;};

接下来是主函数部分,写几个题看看效果。

需要完成

主函数如下:

int main(){int x,y;//数量 int n;//入栈数字 SepStack s;cin>>x;y=x;for(int i=0;i<x;i++){cin>>n;s.Push(n);if(n==y){y--;cout<<s.Pop()<<" ";//       cout<<" "; }}s.PrintStack();return 0;
}

可以看出,使用上面创建的类即可,以上是我的代码,如有更好的,请发在留言区一起讨论。

希望可以得到大家点赞鼓励!!

C++代码实现栈基本操作相关推荐

  1. 汇编语言中将数据、代码、栈放入不同的段

    数据.代码.栈放入不同的段 在学习汇编语言,将数据.代码.栈放入不同的段.参考王爽老师的<汇编语言>第四版,对P133的汇编代码,进行了个人理解标注.仅供参考,存在错误之处,请大家斧正. ...

  2. 贺利坚老师汇编课程30笔记:将数据、代码、栈放入不同段

    指路老师的博客主页 只用一个段,程序显得混乱 把数据.代码.栈放入不同段 ASSUME CS:CODE,DS:DATA,SS:STACK DATA SEGMENT DW 0123H,0456H,078 ...

  3. 顺序栈基本操作(入栈和出栈)C语言详解

    #include <stdio.h> #include <stdlib.h> /*顺序栈基本操作(入栈和出栈)C语言详解栈的具体实现(1)顺序栈(2)链栈栈的应用(1)回退 ( ...

  4. 天勤数据结构代码——栈基本操作

    顺序栈 typedef struct SqStack {int data[maxSize]; //存放栈元素,数组大小,要开足够大(一般题目给)不给就开足够大,写注释.int top; //栈顶下标( ...

  5. c语言堆栈基本代码入栈出栈_链栈基本操作(入栈和出栈)C语言详解

    链,即用 链栈的实现思路同 图 1 链栈示意图 将链表头部作为栈顶的一端,可以避免在实现数据 "入栈" 和 "出栈" 操作时做大量遍历链表的耗时操作. 链表的头 ...

  6. 数据结构:顺序栈基本操作(入栈和出栈)C语言详解(转载)by解学武

    本文为解学武教程的免费章节 什么是顺序栈 顺序栈,即用顺序表实现栈存储结构.通过前面的学习我们知道,使用栈存储结构操作数据元素必须遵守 "先进后出" 的原则,本节就 "如 ...

  7. c语言堆栈基本代码入栈出栈_顺序栈基本操作(入栈和出栈)C语言详解

    顺序,即用{1,2,3,4},存储状态如 图 1 顺序表存储 {1,2,3,4} 同样,使用栈存储结构存储 {1,2,3,4},其存储状态如图 2 所示: 图 2 栈结构存储 {1,2,3,4} 通过 ...

  8. 汇编语言将数据、代码、栈放入不同段基础

    Code内部逻辑: Start 初始化各段寄存器 入栈 出栈 物理逻辑: 代码实现: assume cs:code, ds:data, ss:stack; // 代码段cs.数据段ds.栈段ssdat ...

  9. c语言栈的实现以及操作_数据结构之链栈基本操作的实现详解(C语言描述)

    迎新过后,来带领你好好学习的小软准时归来,快带着上次学习链表操作的记忆和我开启新的旅程吧: 链栈:就是栈的链式存储结构,简称链栈. 首先我们要考虑的就是链栈的存储结构,由于栈只是在栈顶进行插入和删除操 ...

  10. 将数据、代码、栈放入不同的段

    在前面的内容中,我们在程序中用到了数据和栈,将数据.栈.和代码都放到一个段里面.我们在编程的时候要注意何处是数据.何处是栈.何处是代码.这样做的两个问题: ①把它们放到一个段中使程序更加的混乱 ②当数 ...

最新文章

  1. 十周后,62%的PHP网站将运行在一个不受支持的PHP版本上
  2. 例题:学习数据库查询。学生信息表的创建,主外键关系,以及45道题的查询实例。主要知识点在讲页45页,和讲页65页...
  3. UVA 413|LA 5388|POJ 1492|ZOJ 1338 Up and Down Sequences
  4. 超快捷的源代码编辑器「Textastic」
  5. OA系统权限分派实施方案
  6. 戴尔win10计算机打不开,戴尔Win10系统摄像头打不开怎么办?
  7. python爬虫抖音主播_Python 爬取抖音视频
  8. F1电竞全球锦标赛首度落地中国
  9. python编辑器——wingIDE的使用详解
  10. 如何用markdown排版公众号,使用排版神器Markdown Nice
  11. 转:用AutoCAD 系统变量编程
  12. 安卓 ANR 原因,解决方法
  13. java求圆和梯形_jsp与javabean例子 求三角形、圆、梯形面积
  14. 蓝桥 卷“兔”来袭编程竞赛专场-09凯撒加密 题解
  15. 分享:一套开源的办公套件,适用于企业、团队的协同办公平台DzzOffice
  16. 01-数据结构和算法入门
  17. python二元多次函数拟合_对python实现二维函数高次拟合的示例详解
  18. FileNotFoundException 问题的解决
  19. Acceptance testing
  20. 速码工具箱5.0,二维码生产力工具

热门文章

  1. 学习【新版的】韦东山嵌入式_day01
  2. 韦东山《嵌入式Linux应用开发完全手册》配套视频教程
  3. Hadoop安装教程(Hadoop3.3.1版本),centos7系统,避免踩坑
  4. Ubuntu18.04-国产周立功Can 分析仪驱动实现-python版本
  5. 设计模式系列 — 模板方法模式
  6. 12个优秀的 HTML5 网站设计案例欣赏
  7. Jetson Xavier中安装DIGITS-》Caffee中的错误
  8. winform图片操作
  9. 如何成功安装旧版本火狐,成功安装firebug和firepath插件
  10. 用户故事与敏捷方法—概况