栈的顺序存储结构及其基本运算的实现(第三章:栈和队列)

2023-11-01

栈的定义: 栈是一种只能在一端进行插入或删除操作的线性表。
原则: 后进先出。

小女孩想要数字为“2”的小球,男孩只能先把数字为“3”和“1”的小球拿出来,才能拿到小女孩想要的小球。
在这里插入图片描述

栈的特有操作:
  • 允许进行插入、删除操作的一端称为栈顶。也就是最高点。
      栈顶的当前位置是动态的,时高时低。
      栈顶的当前位置由一个称为栈顶指针的’位置指示器’指向。

  • 表的另一端称为栈底。也就是底部。

  • 栈的操作
    插入操作:通常称为进栈或入栈
    删除操作:通常称为退栈或出栈。

  • 当栈中没有数据元素时,称为空栈。

在这里插入图片描述



顺序栈4要素: 以MaxSize=5的栈为例

在这里插入图片描述

  • 栈空条件: top=-1
  • 栈满条件: top=MaxSize-1
  • 进栈e操作:top++; 将e放在top处
  • 退栈操作: 从top处取出元素e; top–;


初始化栈initStack(&s)
  • 建立一个新的空栈s,实际上是将栈顶指针指向-1即可
void InitStack( SqStack *&s )
{
   
	s = (SqStack *)malloc(sizeof
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

栈的顺序存储结构及其基本运算的实现(第三章:栈和队列) 的相关文章

随机推荐

  • 旋转彩色三叶草

  • Android面试汇总-Android内存和性能优化面试

    一 app优化 app优化 工具 Hierarchy Viewer 分析布局 工具 TraceView 测试分析耗时的 App启动优化 布局优化 响应优化 内存优化 电池使用优化 网络优化 App启动优化 针对冷启动 App启动的方式有三种
  • 数据结构与算法:去除重复字母

    给你一个仅包含小写字母的字符串 请你去除字符串中重复的字母 使得每个字母只出现一次 需保证返回结果的字典序最小 要求不能打乱其他字符的相对位置 示例 1 输入 bcabc 输出 abc 示例 2 输入 cbacdcbc 输出 acdb 解题
  • IPC(Inter-Process Communication, 进程间通信)

    之前在面试的时候经常问道Android的进程间通信方式有几种 当时在百度上搜索的答案不尽相同 后来在看源码分析的时候才发现了答案 现在记下来 Android是是使用了Linux内核 Linux现有管道 消息队列 共享内存 套接字 信号量 信
  • Python 为什么要 if __name__ == “__main__“:

    各位读者 你们知道以下两个Python文件有什么区别吗 main1 py def main output Hello print output if name main main main2 py output Hello print ou
  • chown 修改文件或文件夹的所有者、群组权限

    简单粗暴 具体操作 如修改宝塔面板下的 www wwwroot 里所有文件的所有者为www 所属群组也为www 1 转到要修改的目录 root centos cd www wwwroot 2 输入以下命令 root centos wwwro
  • 最优化建模、算法与理论(三)—— 优化建模

    参考书籍 最优化 建模 算法与理论 文章目录 1 建模设计 1 1 目标函数的设计 1 2 约束设计 2 建模技巧 2 1 监督学习 2 1 1 回归 2 1 2 分类 2 2 概率图模型 2 3 相位恢复 2 4 主成分分析 2 5 矩阵
  • property_get使用注意事项

    之前虽然一直使用property get函数 但是没有真正了解过 所以写出了这样一个bug char buf PROPERTY VALUE MAX 0 if property get debug property test buf 0 AL
  • Git 常用命令速查 大全

    一 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch a 查看所有的分支 git branch r 查看远程所有分支 git commit a
  • WEB自动化(JAVA版)——第一个Web自动化测试脚本

    目录 第一个web自动化测试脚本 自动化环境问题 第一个web自动化测试脚本 step1 创建maven项目 step2 引入selenium框架
  • Python3 文件f.seek() 方法

    seek 方法用于移动文件读取指针到指定位置 例如 从文件xx开始读取xx位做md5校验判断 语法 fileObject seek offset whence 参数解析 offset 开始的偏移量 也就是代表需要移动偏移的字节数 如果是负数
  • 【应急响应】战中溯源反制&对抗上线CS&Goby&蚁剑&Sqlmap等安全工具

    文章目录 溯源反制 Webshell工具 Antsword 正常情况下 PHP后门上线 发现PHP后门 修改webshell进行反制 溯源反制 SQL注入工具 SQLMAP 溯源反制 漏洞扫描工具 Goby Awvs 溯源反制 远程控制工具
  • 手把手教线性回归分析(附R语言实例)

    本文长度为8619字 建议阅读15分钟 本文为你介绍线性回归分析 通常在现实应用中 我们需要去理解一个变量是如何被一些其他变量所决定的 回答这样的问题 需要我们去建立一个模型 一个模型就是一个公式之中 一个因变量 dependent var
  • layui提示信息弹窗

    1 layer msg 只想弱弱提示 2 layer msg 有表情地提示 icon 6 3 layer msg 关闭后想做些什么 function do something 4 layer msg 同上 icon 1 time 2000
  • 模型常用评估指标详解- 混淆矩阵/Recall/ROC/AUC/F1/MAPE/RMSE

    简介 模型评估通常作为建模的最后一步 用于评估模型效果 判别该模型是否达到预期 但实际模型评估指标需要在建模的第一步确定 即确定目标函数 凡事都得有个目标 才知道努力的 拟合 方向 否则枉然 连续值或者分类型的预测最常用的说法就是模型精度
  • Hadoop报错处理方法汇总

    1 报错信息 org apache hadoop hdfs server common InconsistentFSStateException Directory home maclaren data hadoopTempDir dfs
  • day 6

    用c语言实现对sqlite3数据库的插入删除修改和查找 头文件 ifndef HEAD define HEAD include
  • #Microsoft Edge功能测评!# 关于Edge浏览器以及插件推荐

    关于Edge浏览器以及插件推荐 1 关于Microsoft Edge 1 1 什么是Microsoft Edge 1 2Microsoft Edge的优势 2 Microsoft Edge的分屏功能 2 1 如何分屏 2 2分屏的优势 3
  • 华为OD机试真题-最多获得的短信条数【2023.Q1】

    题目内容 某云短信厂商 为庆祝国庆 推出充值优惠活动 现在给出客户预算 和优惠售价序列 求最多可获得的短信总条数 输入描述 第一行客户预算M 其中 0 M 10 6 第二行给出售价表 P1 P2 Pn 其中 1 n 100 Pi为充值 i
  • 栈的顺序存储结构及其基本运算的实现(第三章:栈和队列)

    栈的定义 栈是一种只能在一端进行插入或删除操作的线性表 原则 后进先出 小女孩想要数字为 2 的小球 男孩只能先把数字为 3 和 1 的小球拿出来 才能拿到小女孩想要的小球 栈的特有操作 允许进行插入 删除操作的一端称为栈顶 也就是最高点