当前位置: 首页 > news >正文

数据结构----顺序栈的操作

1.顺序栈的存储结构
typedef int SElemType;
typedef int Status;
typedef struct{SElemType *top,*base;//定义栈顶和栈底指针int stacksize;//定义栈的容量
}SqStack;
2.初始化栈
Status InitStack(SqStack &S){//初始化一个空栈S.base=new SElemType[MAXSIZE];//为顺序栈动态分配一个最大容量为MAXSIZE的空间if(S.base==NULL) return ERROR;//判断存储是否分配成功S.top=S.base;//将top初始化为base,置为空栈S.stacksize=MAXSIZE;//stacksize置为最大容量MAXSIZEreturn OK;
}
3.入栈操作
Status Push(SqStack &S,SElemType e){//入栈if(S.top-S.base==S.stacksize) return ERROR;//判断是否栈满*S.top=e;S.top++;return OK;
}
4.出栈操作
Status Pop(SqStack &S,SElemType &e){//出栈if(S.top==S.base) return ERROR;//判断栈是否为空S.top--;e=*S.top;return OK;
}
5.遍历栈中元素
Status PrintfStack(SqStack S){//遍历栈内的所有元素SElemType *p;p=S.base;printf("栈中的元素为:");while(p!=S.top){printf("%d ",*p);p++;}printf("\n");
}
6.获取栈顶元素
SElemType GetTop(SqStack S){//获取栈顶元素if(S.top!=S.base)//当栈不为空时return *(S.top-1);
}
7.获取栈的长度
int StackLength(SqStack S){//获取栈的长度int len=0;SElemType *s;s=S.base;//从栈底开始while(s!=S.top){len++;s++;}printf("栈的长度为:%d\n",len);
}
8.判断栈是否为空
Status StackEmpty(SqStack S){//判断栈是否为空if(S.top==S.base) return ERROR;elsereturn OK;
}

9.主程序代码

#include<stdio.h>
#define MAXSIZE 100
#define ERROR 0
#define OK 1
typedef int SElemType;
typedef int Status;
typedef struct{SElemType *top,*base;//定义栈顶和栈底指针int stacksize;//定义栈的容量
}SqStack;
Status InitStack(SqStack &S){//初始化一个空栈S.base=new SElemType[MAXSIZE];//为顺序栈动态分配一个最大容量为MAXSIZE的空间if(S.base==NULL) return ERROR;//判断存储是否分配成功S.top=S.base;//将top初始化为base,置为空栈S.stacksize=MAXSIZE;//stacksize置为最大容量MAXSIZEreturn OK;
}
Status Push(SqStack &S,SElemType e){//入栈if(S.top-S.base==S.stacksize) return ERROR;//判断是否栈满*S.top=e;S.top++;return OK;
}
Status Pop(SqStack &S,SElemType &e){//出栈if(S.top==S.base) return ERROR;//判断栈是否为空S.top--;e=*S.top;return OK;
}
Status PrintfStack(SqStack S){//遍历栈内的所有元素SElemType *p;p=S.base;printf("栈中的元素为:");while(p!=S.top){printf("%d ",*p);p++;}printf("\n");
}
SElemType GetTop(SqStack S){//获取栈顶元素if(S.top!=S.base)return *(S.top-1);
}
int StackLength(SqStack S){//获取栈的长度int len=0;SElemType *s;s=S.base;while(s!=S.top){len++;s++;}printf("栈的长度为:%d\n",len);
}
Status StackEmpty(SqStack S){//判断栈是否为空if(S.top==S.base) return ERROR;elsereturn OK;
}
int main()
{SqStack S;InitStack(S);int n;printf("请输入要入栈的元素个数:");scanf("%d",&n);printf("请输入要入栈的元素:");for(int i=0;i<n;i++){//将待入栈的元素依次存入栈中SElemType e;scanf("%d",&e);Push(S,e);}if(StackEmpty(S))printf("栈不为空!\n");elseprintf("栈为空!\n");int x=GetTop(S);printf("栈顶元素为:%d\n",x);StackLength(S);PrintfStack(S);printf("元素出栈:");for(int i=0;i<n;i++){SElemType e;Pop(S,e);printf("%d ",e);}printf("\n");if(StackEmpty(S))printf("栈不为空!\n");elseprintf("栈为空!\n");return 0;
}

运行结果

分享一个网络上真正的巨人------冬泳怪鸽的一句话:“闲话终日有,不听自然无。”,笑梗不笑人,怪哥真男人,干就完了,加油,奥里给!!!

相关文章:

数据结构----顺序栈的操作

1.顺序栈的存储结构 typedef int SElemType; typedef int Status; typedef struct{SElemType *top,*base;//定义栈顶和栈底指针int stacksize;//定义栈的容量 }SqStack; 2.初始化栈 Status InitStack(SqStack &S){//初始化一个空栈S.basenew SElemType[MAXSIZE];//为顺序…...

web3 React Dapp书写订单 买入/取消操作

好 上文web3 前端dapp从redux过滤出 (我创建与别人创建&#xff09;正在执行的订单 并展示在Table上中 我们过滤出了 我创建的 与 别人创建的 且 未完成 未取消的订单数据 这边 我们起一下 ganache 环境 ganache -d然后 我们项目 发布一下智能合约 truffle migrate --reset然…...

C++学习---信号处理机制、中断、异步环境

文章目录 前言信号处理signal()函数关于异步环境 信号处理函数示例raise()函数 前言 信号处理 关于信号&#xff0c;信号是一种进程间通信的机制&#xff0c;用于在程序执行过程中通知进程发生了一些事件。在Unix和类Unix系统中&#xff0c;信号是一种异步通知机制&#xff0c…...

机器学习——奇异值分解案例(图片压缩-代码简洁版)

本想大迈步进入前馈神经网络 但是…唉…瞅了几眼&#xff0c;头晕 然后想到之前梳理的奇异值分解、主成分分析、CBOW都没有实战 如果没有实际操作&#xff0c;会有一种浮在云端的虚无感 但是如果要实际操作&#xff0c;我又不想直接调用库包 可是…如果不直接调包&#xff0c;感…...

【Go入门】面向对象

【Go入门】面向对象 前面两章我们介绍了函数和struct&#xff0c;那你是否想过函数当作struct的字段一样来处理呢&#xff1f;今天我们就讲解一下函数的另一种形态&#xff0c;带有接收者的函数&#xff0c;我们称为method method 现在假设有这么一个场景&#xff0c;你定义…...

Asp.Net Core 中使用配置文件

本文参考微软文档&#xff1a;ASP.NET Core 中的配置 ASP.NET Core 中的应用程序配置是使用一个或多个配置程序提供程序执行的。 配置提供程序使用各种配置源从键值对读取配置数据&#xff1a; 设置文件&#xff0c;例如 appsettings.json环境变量Azure Key VaultAzure 应用配…...

深入理解JVM虚拟机第二十四篇:详解JVM当中的动态链接和常量池的作用

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…...

QGridLayout

QGridLayout QGridLayout 是 Qt 框架中的一个布局管理器类&#xff0c;用于在窗口或其他容器中创建基于网格的布局。 QGridLayout 将窗口或容器划分为行和列的网格&#xff0c;并将小部件放置在相应的单元格中。可以通过调整行、列和单元格的大小来控制布局的样式和结构。 以…...

万能在线预约小程序系统源码 适合任何行业在线预约小程序+预约到店模式 带完整的搭建教程

大家好啊&#xff0c;源码小编又来给大家分享啦&#xff01;随着互联网的发展和普及&#xff0c;越来越多的服务行业开始使用在线预约系统以方便客户和服务管理。例如&#xff0c;美发店、健身房、餐厅等都可以通过在线预约系统提高服务效率&#xff0c;减少等待时间&#xff0…...

Leetcode 2935. Maximum Strong Pair XOR II

Leetcode 2935. Maximum Strong Pair XOR II 1. 解题思路2. 代码实现 题目链接&#xff1a;2935. Maximum Strong Pair XOR II 1. 解题思路 这一题又是一个限制条件下找“最大值”的问题&#xff0c;不过这里的最大值是XOR之后的最大值。 而要求XOR之后结果的最大值&#x…...

[直播自学]-[汇川easy320]搞起来(4)看文档 查找设备(续)

2023.11.12 周六 19&#xff1a;05 补充一下关于以太网查找设备&#xff0c;如果设置如下&#xff1a; 然后点击测试&#xff1a; 点击ping 如果设置如下&#xff1a; 测试和ping和上图一样。 这就设计的有点不大好了&#xff01; 另…...

WebSphere Liberty 8.5.5.9 (四)

WebSphere Liberty 8.5.5.9 (四) [WebSphere Liberty 8.5.5.9]Linux 环境 ~$ unzip wlp-webProfile7-java8-linux-x86_64-8.5.5.9.zip ./ ~$ mkdir wlp-webProfile7-java8-8559 ~$ mv wlp ./wlp-webProfile7-java8-8559启动 WebSphere Liberty 8.5.5.9 服务 ~$ cd /home/tes…...

UE特效案例 —— 角色刀光

目录 一&#xff0c;环境配置 二&#xff0c;场景及相机设置 三&#xff0c;效果制作 刀光制作 地裂制作 击打地面炸开制作 一&#xff0c;环境配置 创建默认地形Landscape&#xff0c;如给地形上材质需确定比例&#xff1b;添加环境主光源DirectionalLight&#xff0c;设…...

11. EPIC定时器

11. EPIC定时器 EPIT定时器简介EPIT定时器结构分析EPIT 定时器相关寄存器EPITx_CREPITx_SREPITx_LR 加载寄存器EPITx_CMPR 比较寄存器EPITx_CNR 计数寄存器 EPIT 配置步骤 例程代码编写bsp_epittimer.hbsp_epittimer.cmain.c EPIT定时器简介 EPIT定时器是增强的周期中断定时器…...

git-bash配置代理

git-bash命令提交执行命令: "git push origin main"时发生错误: “$ git push origin main fatal: unable to access ‘https://github.com/satadriver/locust_server.git/’: Failed to connect to github.com port 443 after 21035 ms: Couldn’t connect to serve…...

【ElasticSearch系列-07】ES的开发场景和索引分片的设置及优化

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【三】ElasticSearch的高级查询Quer…...

JavaWeb Day09 Mybatis-基础操作02-XML映射文件动态SQL

目录 Mybatis动态SQL介绍​编辑 一、案例 ①Mapper层 ②测试类 ③EmpMapper.xml ④结果​ 二、标签 &#xff08;一&#xff09;if where标签 ​①EmpMapper.xml ②案例 ③总结 &#xff08;二&#xff09;foreach标签 ①SQL语句 ②Mapper层 ③EmpMapper.xml ④…...

CV学习基础

脸部检测是基于图像的明暗变化模式进行判断&#xff0c;需要将图像先进行灰度化处理 马赛克处理需先将图像缩小然后夸大回原尺寸。 保存训练好的算法用joblib 进行以下操作时已经使用cv2.cvtColor()完成了灰度化 图像平滑化&#xff08;模糊处理&#xff09;&#xff1a;cv…...

设计模式之禅之设计模式-原型模式

设计模式之禅之设计模式-原型模式 一&#xff1a;原型模式的定义 ​ 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 ​ 原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。正是由于简单,使用的场景才非常地多。 ​ 原型模式的核心是一…...

Spring的循环依赖问题

文章目录 1.什么是循环依赖2.代码演示3.分析问题4.问题解决5.Spring循环依赖6. 疑问点6.1 为什么需要三级缓存6.2 没有三级缓存能解决吗&#xff1f;6.3 三级缓存分别什么作用 1.什么是循环依赖 上图是循环依赖的三种情况&#xff0c;虽然方式有点不一样&#xff0c;但是循环依…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

R语言速释制剂QBD解决方案之三

本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...