当前位置: 首页 > 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;但是循环依…...

电商运营自动化:OpenClaw+Phi-3-vision实现竞品图文分析

电商运营自动化&#xff1a;OpenClawPhi-3-vision实现竞品图文分析 1. 为什么需要自动化竞品分析 作为个人电商卖家&#xff0c;我每天要花大量时间手动收集竞品信息&#xff1a;截图商品页面、记录价格变化、对比卖点描述。这种重复劳动不仅效率低下&#xff0c;还容易遗漏关…...

告别路由器!用ESP32-NOW和Arduino IDE打造你的第一个无线传感器网络(附完整代码)

用ESP32-NOW构建去中心化传感器网络的实战指南 去年夏天&#xff0c;我在一个没有Wi-Fi覆盖的农场部署环境监测系统时&#xff0c;第一次深刻体会到ESP32-NOW的价值。传统方案需要架设路由器和中继器&#xff0c;而使用ESP32-NOW&#xff0c;仅用五块开发板就实现了半径300米范…...

为什么你的.NET 9容器镜像比别人胖47%?——官方SDK分层优化与多阶段构建深度拆解(实测数据支撑)

第一章&#xff1a;为什么你的.NET 9容器镜像比别人胖47%&#xff1f;——问题溯源与性能基线建立当你运行 docker build -t myapp . 构建一个标准的 ASP.NET Core 9 Web API 项目时&#xff0c;镜像大小可能悄然突破 380MB&#xff1b;而采用最佳实践的同类镜像仅约 265MB——…...

[特殊字符] 《网络知识和Servlet重点知识整理》

一、网络作用&#xff08;基础认知&#xff09; 核心作用&#xff1a;实现不同设备之间的数据传输与通信&#xff0c;支撑互联网应用&#xff08;网页、APP、游戏、视频等&#xff09;。 信息传递&#xff1a;客户端 ↔ 服务器 资源共享&#xff1a;文件、数据库、计算资源 分…...

三极管基极电阻设计与工程实践

1. 三极管基极电阻的必要性解析在电子电路设计中&#xff0c;三极管作为最基础的半导体器件之一&#xff0c;其基极电阻的配置往往被初学者忽视。实际上&#xff0c;这两个电阻&#xff08;限流电阻和上拉/下拉电阻&#xff09;的设计直接影响着电路的可靠性和稳定性。以常见的…...

Trae 国际版下载地址

Trae 国际版官方网站下载页&#xff1a;https://www.trae.ai/download...

Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)复现

Apache APISIX是一个动态、实时、高性能API网关&#xff0c;而Apache APISIX Dashboard是一个配套的前端面板。 Apache APISIX Dashboard 2.10.1版本前存在两个API/apisix/admin/migrate/export和/apisix/admin/migrate/import&#xff0c;他们没有经过droplet框架的权限验证&…...

靠两台电脑,月入10万,一个中年人的实战分享

阿阳到底是谁&#xff1f;凭什么能做到 月入10万 &#xff1f;先跟大家说个实话啊&#xff0c;我不是什么大牛&#xff0c;也没啥 光 环。我就是个普通人&#xff0c;普通的家庭&#xff0c;普通的脑子&#xff0c;普通的起点。唯一不普通的&#xff0c;可能就是——我辞职得比…...

新质生产力水平测算(版本3,2010-2023年)

1、搜数据皮皮侠&#xff0c;编号14172、使用兑换码0447220m6ZHB006826sU14Vv数据来源《中国统计年鉴》、《中国能源统计年鉴》、《中国工业统计年鉴》、《中国环境统计年鉴》、能源统计局、省级统计年鉴。时间跨度2010-2023年区域跨度全国31个省市自治区&#xff08;不含港澳台…...

JPG文件结构解析:从WinHex十六进制数据到实际图片属性的完整指南

JPG文件结构解析&#xff1a;从WinHex十六进制数据到实际图片属性的完整指南 当你用手机拍下一张照片&#xff0c;或是从网上下载一张图片时&#xff0c;这些JPG文件背后隐藏着怎样的数据结构&#xff1f;对于开发者、安全研究人员和逆向工程师来说&#xff0c;理解JPG文件的底…...