深入理解数据结构——堆栈的基本操作

2023-10-31

#include <iostream>
#include <string>

using namespace std;


typedef int Etype;

//顺序存储堆栈
struct Stack {
	Etype* element;
	int top;
	int maxsize;
};

//创建空堆栈
void CreateStack(Stack &S,int MaxStackSize){
	S.maxsize = MaxStackSize;
	S.element = new Etype[S.maxsize];//创建数组元素
	S.top = -1;//top指向的是数据空间的第一个元素,本身的值代表数据元素的下表,空表设top为-1
}

//判断堆栈是否为空
bool IsEmpty(Stack &S) {
	if (S.top == -1) return true;
	else return false;
}

//判断堆栈是否满了
bool IsFull(Stack& S) {
	if (S.top >= S.maxsize - 1) return true;
	else return false;
}

//返回栈顶元素的值
bool GetTop(Stack& S,Etype &result) {
	if (IsEmpty(S)) return false;
	result = S.element[S.top];
	return true;
}

//出栈操作,将栈顶元素取出,并且将top指向下一个元素的位置
bool Pop(Stack& S, Etype& result) {
	if (IsEmpty(S)) return false;
	result = S.element[S.top];
	S.top--;//栈顶指向下一个元素地址
	return true;
}

//进栈操作,将top+1,输入元素存入新的栈顶
bool Push(Stack& S, Etype& x) {//传入的是x的地址
	if (IsEmpty(S)) return false;
	S.top++;
	S.element[S.top] = x;
	return true;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解数据结构——堆栈的基本操作 的相关文章

随机推荐

  • 详细的数据可视化库之Seaborn教程(一)——relplot:关系图(可视化统计量间的关系)

    文章目录 seaborn 一 可视化统计量间的关系 relationship sns relplot 一 散点图 relplot kind scatter 参数hue hue hue order hue palette 参数style hu
  • BES平台耳机开发笔记

    有好长一段时间没有在CSDN平台发文章 接下来我将BES平台开发耳机部分做的一些小笔记与大家分享 这里包括了BES2000系列 BES2300系列 BES2500系列就不一一例举了 平时做下的笔记比较多 很难全部上传 我挑选一些比较关键的与
  • 关于频率综合器

    完整版请参考 https mazhaoxin github io 2018 08 12 About Frequency Synthesizer http 483v7j coding pages com 2018 08 12 About Fr
  • 跳表

    跳表 前言 一 什么是跳表 二 跳表的时间复杂度 三 跳表的空间复杂度 四 高效的动态插入和删除 1 插入操作 2 删除操作 五 跳表退化与跳表索引的动态更新 前言 对于二分查找算法 其底层依赖支持随机查找特性的数组 一般情况下只能依靠数组
  • R语言与线性回归分析

    文章目录 1 原始数据的分析 2 回归模型的拟合 参数估计和检验 3 变量选择 4 回归诊断 5 改进措施 6 岭回归 8 其他 基本假设 正态性 独立性 线性 同方差性 常用R包 car carData MASS leap 1 原始数据的
  • paddleocr 训练自己的数据,详细笔记

    目录 算法原理 第一步 制作数据集 数据标注工具 可视化标注 一定要制
  • MYSQL数据库部署--5.7版本数据库部署

    目录 MySQL5 7安装 二进制方式安装 一 安装前的准备 二 安装MySQL数据库 1 解压MySQL安装包 2 将解压后的文件拷贝到安装路径下 3 修改文件的权限 4 创建存放data的文件夹 5 在 etc下创建mysql的参数文件
  • Dubbo admin安装教程

    github下载代码 git clone https github com apache dubbo admin git 打包dubbo admin server java jar 运行 想看的界面需要按照nodejs Node js 完成
  • 全面总结: Golang 调用 C/C++,例子式教程

    https www cnblogs com linguanh p 8323487 html 掘金 https juejin im user 587f0dfe128fe100570ce2d8 博客 http www cnblogs com l
  • 2021.12.6—12.11周总结

    1 将数据结构的查找这一章学完了 线性表 顺序 折半 分块 和树表 二叉排序树 平衡二叉树 B 树和B 树 哈希表 的查找 2 前端的期末作品肝完了 三四天 基本上来说 后续有空应该会继续完善 3 写算法题 准备蓝桥杯吧 虽然过不了 还是去
  • 盒子集成weith,不继承height

    div class fa div class son 111 div div
  • 毕业设计-基于机器学习的短期负荷预测算法

    目录 前言 课题背景和意义 实现技术思路 一 电力负荷预测 二 典型负荷预测算法 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求
  • GO如何编写一个 Worker Pool

    作者 JustLorain https juejin cn post 7244733519948333111 前言 池化技术是一种资源管理技术 它通过提前创建和维护一组可重用的资源实例池 以便在需要时快速分配和回收这些资源 协程 gorou
  • java远程关机_java远程开关机

    packagetestFrame importjava awt Color importjava awt Font importjava awt event ActionEvent importjava awt event ActionLi
  • 关于STM32 下载程序下方提示internal command error的解决办法

    最近在调试一块板子 使用的是STM32CubeMx生成 结果发现 自己在烧写程序完成后 再次烧写就无法烧写成功 一直提示No Target connect 后在bulid output中发现了一个问题 在bulid output下方提示in
  • Memcache图形化管理工具MemAdmin

    1 美图 2 概述 下面给大家介绍一款 memcache图形化管理工具 MemAdmin 下载地址 http www junopen com memadmin MemAdmin是一款可视化的Memcached管理与监控工具 使用PHP开发
  • python网络爬虫之Max retries exceeded with url错误

    ConnectionError HTTPSConnectionPool host cq feibaos com port 443 Max retries exceeded with url news lists notice html re
  • IDEA导入本地项目

    1 文件 New Model from Existing Sources 2 选中需要导入的项目 3 选择maven文件选项 从外部模型导入模块 Idea本地项目部署路径 IDEA不会把你的项目部署到你的Tomcat安装目录 它会在操作系统
  • Weblogic SSRF漏洞

    1 漏洞描述 weblogic中存在SSRF漏洞 利用该漏洞可以发送任意HTTP请求 进而攻击内网中redis fastcgi等脆弱组件 2 影响版本 weblogic 10 0 2 10 3 6版本 3 POC http 192 168
  • 深入理解数据结构——堆栈的基本操作

    include