栈的定义

栈:是只允许在一端进行插入或删除操作的线性表。

栈的存储方式有两种:顺序栈和链栈,即栈的顺序存储和链式存储。

1.采用顺序存储的栈称为顺序栈,它利用一组地址连续的存储单元存放自栈底到栈的元素,同时附设一个指针(top)指示当前栈顶的位置。
2.采用链式存储的栈称为链栈,链栈便于多个栈共享存储空间和提高其效率,且不存在栈满上溢的情况。通常采用单链表实现,并且所有操作都是在单链表的表头进行的

栈的基本操作

//判栈空
bool Empty(SqStack S){if(S.top == -1){return true;}else{return false;}
}
//入栈
void Push(SqStack &S, int x){if(S.top == MaxSize-1){cout<<"栈满"<<endl;return;}S.data[++S.top] = x; //指针先加一,再入栈
}
//出栈
void Pop(SqStack &S, int &x){if(S.top == -1){cout<<"栈空"<<endl;return;}x = S.data[S.top--]; //先出栈,指针再减一
}
//遍历栈
void PrintStack(SqStack S){while(S.top != -1){cout<<S.data[S.top--]<<" ";}cout<<endl;
}
//读栈顶元素
int GetTop(SqStack S){if(S.top == -1){cout<<"栈空"<<endl;return -1;}else{return S.data[S.top];}
}

砥砺前行!

数据结构之栈的基本操作相关推荐

  1. 重学数据结构004——栈的基本操作及实现(数组实现)

    上文提到过栈以及栈的基本操作.上文中是基于链表做的实现.但是这种方法会出现大量的malloc()和free()操作,这种开销是非常昂贵的. 另外一种实现方式是基于数组的实现.这种实现方式需要预先制定一 ...

  2. 【C++】【数据结构】顺序栈的基本操作(初始化、入栈、出栈、取栈顶元素、遍历输出栈)的算法实现附全代码

    C++实现顺序栈的算法+步骤(附全代码): 使用c++完成数据结构顺序栈的基本操作,包括(初始化.入栈.出栈.取栈顶元素.遍历输出栈等),可直接编译运行. 顺序栈的定义如下: #define MAXS ...

  3. 数据结构源码笔记(C语言):栈的基本操作

    #include <stdio.h> #define MaxSize 100typedef char ElemType;typedef struct {char stack[MaxSize ...

  4. sdut 3335 数据结构实验之栈与队列八:栈的基本操作

    数据结构实验之栈与队列八:栈的基本操作 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descri ...

  5. 数据结构-“栈”的基本操作

    栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表.它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出 ...

  6. 数据结构动态顺序字符串基本操作实验_技术连载:数据结构 - 栈

    栈 只有一个口,可以进数据也可以出数据,一种典型的先进后出.后进先出的数据结构: 栈 栈的基本操作 入栈 入栈操作需要考虑当前栈是否以及满了,如果满了是选择扩容还是返回入栈失败: 入栈成功则需要更新栈 ...

  7. BJFU_数据结构习题_241双栈的基本操作

    欢迎登录北京林业大学OJ系统 http://www.bjfuacm.com 241双栈的基本操作 描述 将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端.当第0号栈的栈顶指针 ...

  8. 数据结构 栈-链栈及基本操作

    目录 一.栈的定义 二.栈的特点 三.栈的理解 四.链栈引入 五.链栈定义 六.链栈的结构体设计 七.链栈的基本操作 7.1链栈的初始化 7.2链栈判空 7.3链栈入栈 7.4链栈出栈 7.4取栈顶元 ...

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

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

最新文章

  1. Linux编程中的坑——C++中exit和return的区别
  2. iOS开发--TableView详细解释
  3. java 解析日期格式_日期/时间格式/解析,Java 8样式
  4. 基于.NET Socket API 通信的综合应用
  5. SQL Server中,varchar和nvarchar如何选择
  6. NMS 原理和c++实现,已测试通过
  7. C - Bone Collector(背包问题)(01背包)
  8. hp刀片服务器性能分析,IBM刀片服务器与高性能计算-20210723075634.ppt-原创力文档...
  9. python去重且顺序不变_python实现文本去重且不打乱原本顺序
  10. [电影]《指环王》新老三部曲完全赏析(王者归来)
  11. word中套用表格样式在哪里_word2010中表格自动套用格式在哪里?
  12. 航程门业:如何选购实木复合门及如何保养
  13. 服务器接上显示器后没信号,为什么显示器无信号电脑显示器无信号的解决办法...
  14. cloc工具 命令行 统计代码行数
  15. 抓包导出的har格式解析
  16. VMware+CentOS7搭建私有云桌面服务
  17. KUKA KRC4 控制器截图
  18. 安装pycrypto,windows10,全解
  19. 用负片制作中途曝光作品
  20. 数字图像处理 图像变换

热门文章

  1. 定向天线有用吗_全向天线好还是定向天线好
  2. api 支付宝接口 支付接口 退款接口
  3. 妥妥的精华之Java工程师秋招回忆录+面经汇总,为了拿BAT的研发offer我都做了那些准备
  4. 用计算机求解重心法,excel求解精确重心法
  5. 我所知道坦克大战(单机版)之机器坦克全消亡后重新加入、键盘F2复活主坦克...
  6. 店宝宝:断外链踢淘宝 抖音电商到底该怎么玩?
  7. GUI Design Studio----如何使用位图图像
  8. Friend or Foe?
  9. vce 题库导入_PDF题库转VCE文件总汇.docx
  10. linux设置默认启动桌面或是命令行,使用一个命令重置 Linux 桌面为默认设置