栈和队列--受限制的线性表

news2024/12/29 9:10:08

目录

和队列的定义和特点

1.1栈的定义和特点、

1.2队列的定义和特点

1.3栈和队列的应用

2.栈的表示和操作的实现

2.1栈的类型定义

2.2顺序栈的表示和实现

2.2.1初始化

2.2.2入栈

2.2.3出栈

2.2.4取栈顶元素

2.3链栈的表示和实现

2.2.1初始化

2.2.2入栈

2.2.3出栈

2.2.4取栈顶元素

3.栈与递归(⭐⭐⭐⭐⭐)

3.1采用递归算法解决的问题

3.2递归过程与递归栈

3.3递归算法的效率分析

3.4利用栈将递归算法转化为非递归算法

4.队列的表示和操作的实现

4.1队列的类型定义

4.2循环队列--队列的顺序表示和实现

4.3链队--队列的连时表示和实现

5.案例

6.小结(❀)


和队列的定义和特点

1.1栈的定义和特点、

:限定仅在表尾进行操作的线性表(LIFO/LIFO--先进后出,后进先出)

1.2队列的定义和特点

队列:限定仅在队头删除,队尾插入的线性表(FIFO/LILO -- 先进先出,后进后出)

1.3栈和队列的应用

:1.数制的转换;

原理:N=(N div d)*d +N mod d;

在计算过程中依次将余数压入栈中,计算完毕,在依次弹出栈中的余数就是数制转换的结果。

例题:405. 数字转换为十六进制数 - 力扣(Leetcode)(建议自己试试也挺简单,就不加代码了)

2.括号匹配;

3.表达式求值

队列:舞伴问题

这几个其实也很简单,(偷偷说)其实其中的而部分题目我更愿意用字符串来做。。。。

2.栈的表示和操作的实现

2.1栈的类型定义

栈的抽象数据类型定义:

ADT Stack{
	数据对象:D{ai | ai∈Elemset,i = 1,2,...,n,n≥0}
	数据关系:R = {<ai - 1,ai> | ai∈D,i = 2,...,n}
			约定an端为栈顶,a1端为栈底。
	基本操作:
		InitStack(&S)
		操作结果:构造一个空栈
		DestoyStack(&s)
		初始条件:栈S已经存在
		操作结果:栈S被销毁
		ClearStack(&s)
		初始条件:栈S已经存在
		操作结果:栈S被清空为空栈
		StackEmpty(s)
		初始条件:栈S已经存在
		操作结果:若栈S为空栈,则返回true,否则返回false
		GetTop(s)
		初始条件:栈S已经存在且非空
		操作结果:返回S的栈顶元素,不改变栈顶指针
		Push(&s,e)
		初始条件:栈S已经存在
		操作结果:插入元素为e的新的栈顶元素
		Pop(&s,&e)
		初始条件:栈S已经存在且非空
		操作结果:删除S的栈顶元素,并用e返回其值
		StackTraverse(s)
		初始条件:栈S已经存在且非空
		操作结果:从栈顶到栈底依次对S的每个数据元素惊醒访问

}

2.2顺序栈的表示和实现

2.2.1初始化

2.2.2入栈

2.2.3出栈

2.2.4取栈顶元素

2.3链栈的表示和实现

2.2.1初始化

2.2.2入栈

2.2.3出栈

2.2.4取栈顶元素

3.栈与递归(⭐⭐⭐⭐⭐)

3.1采用递归算法解决的问题

3.2递归过程与递归栈

3.3递归算法的效率分析

3.4利用栈将递归算法转化为非递归算法

4.队列的表示和操作的实现

4.1队列的类型定义

4.2循环队列--队列的顺序表示和实现

4.3链队--队列的连时表示和实现

5.案例

6.小结(

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Servlet】(Servlet API HttpServlet 处理请求 HttpServletRequest 打印请求信息 前端给后端传参)

文章目录 Servlet APIHttpServlet处理请求 HttpServletRequest打印请求信息前端给后端传参 Servlet API Servlet中常用的API HttpServlet 实际开发的时候主要重写 doXXX 方法, 很少会重写 init / destory / service destory 服务器终止的时候会调用. //下面的注解把当前类和…

结构体的定义与赋值

1、结构体定义 首先定义一个学生结构体&#xff0c;如下所示&#xff1a; struct Student {int num;char name[32];char sex;int age; }; 接着在主函数中对学生进行声明&#xff0c;如下所示&#xff1a; #include<iostream> using namespace std;struct Student {in…

Redis——SringBoot集成Redis

创建项目 导入如下依赖 jedis:采用的直连&#xff0c;多个线程操作的话&#xff0c;是不安全的&#xff0c;如果想要避免不安全的&#xff0c;使用 edis pool 连接池!更像 BIO 模式 lettuce: 采用netty&#xff0c;实例可以再多个线程中进行共享&#xff0c;不存在线程不安全…

探索未来:元宇宙与Web3的无限可能

随着科技的奇迹般发展&#xff0c;互联网已经成为了我们生活的不可分割的一部分。然而&#xff0c;尽管它的便利性和普及性带来了巨大的影响&#xff0c;但我们仍然面临着传统互联网体验的诸多限制。 购物需要不断在实体店与电商平台间切换&#xff0c;教育依然受制于时间与地…

C# int和uint类型学习

在C#中&#xff0c;使用int表示整数类型&#xff0c;对应于.NET的System.Int32结构&#xff1b; C#中的int类型占4字节(4*832位)内存空间&#xff0c;其范围从-2,147,483,648 到 2,147,483,647&#xff1b; int类型是默认的整数类型&#xff0c;并且默认值是0&#xff1b; u…

【芯片前端】auto_testbench的大版本升级——加入简单预期与自动比对

前言 前文提要&#xff1a; 【芯片前端】一键生成简易版本定向RTL验证环境的脚本——auto_verification_rtl脚本_尼德兰的喵的博客-CSDN博客 【芯片前端】可能是定向验证的巅峰之作——auto_testbench_autotestbench_尼德兰的喵的博客-CSDN博客 工具路径&#xff1a; auto…

「量化」快乐:UC Berkeley 利用 AI 追踪多巴胺释放量及释放脑区

内容一览&#xff1a;多巴胺是神经系统中重要的神经递质&#xff0c;与运动、记忆和奖赏系统息息相关&#xff0c;它是快乐的信使&#xff0c;当我们看到令人愉悦的东西时&#xff0c;体内就会分泌多巴胺&#xff0c;诱导我们向它追寻。然而&#xff0c;多巴胺的准确定量分析目…

利用logstash/filebeat/插件,将graylog日志传输到kafka中

1.graylog配置输出 在System-outputs&#xff0c;选择GELF Output&#xff0c;填写如下内容&#xff0c;其它选项默认 在要输出的Stream中&#xff0c;选择Manage Outputs 选择GELF Output&#xff0c;右边选择刚才创建好的test。 2.安装logstash&#xff0c;作为中间临时…

idea报错:java: 程序包org.springframework.web.bind.annotation不存在

这个错误通常都是maven仓库的问题&#xff0c;试了网上很多方法&#xff0c;都没有解决&#xff0c;如果大家有遇到这个问题&#xff0c;且试了很多方法之后都没有解决&#xff0c;不妨可以试试我这个方法 先编译一下已经写好的代码&#xff0c;这时候会出现以上报错&#xff…

网络安全 | 揭秘网络安全攻防实战:探索互联网发展史,守护数字世界的安全堡垒

大家好&#xff0c;我是沐尘而生。 互联网发展史&#xff1a;数字世界的壮阔画卷 从早期的ARPANET到今天的万物互联&#xff0c;互联网经历了漫长的发展过程。然而&#xff0c;随着技术的进步&#xff0c;网络安全问题也随之而来。我们不仅要探索互联网的壮阔历程&#xff0c;…

普通索引和唯一索引,应该怎么选择(已经那个changebuffer - 和你这个线程连接池)

普通索引和唯一索引是什么 普通索引和唯一索引都是数据库中常用的索引类型&#xff0c;它们的主要区别在于索引列的值是否允许重复 普通索引允许索引列的值重复&#xff0c;也就是说&#xff0c;如果多个记录在索引列中具有相同的值&#xff0c;那么这些记录仍然可以通过普通…

条件操作符(三目操作符)

比如之前我们想写一个条件判断表达式是这样写的&#xff1a; 用操作符就可以这样写&#xff1a; 应用&#xff0c;比如求两个数的最大值

SQL | 分组数据

10-分组数据 两个新的select子句&#xff1a;group by子句和having子句。 10.1-数据分组 上面我们学到了&#xff0c;使用SQL中的聚集函数可以汇总数据&#xff0c;这样&#xff0c;我们就能够对行进行计数&#xff0c;计算和&#xff0c;计算平均数。 目前为止&#xff0c…

第一个ArkTS项目实践-鸿蒙ArkTS

第一个ArkTS项目实践-ArkTS 第一个ArkTS项目实践-ArkTS自定义组件的组成配置属性与布局配置属性布局 改变组件状态循环渲染列表数据代码ToDoItem组件ToDoList页面 效果参考资料 第一个ArkTS项目实践-ArkTS 本篇文章是官网上视频对ArkTS开发实践的第一个视频&#xff0c;主要是引…

Docker中部署redis

1.部署redis要求 2.部署教程 连接容器中的redis redis部署完毕

项目:基于UDP的TFTP文件传输

1&#xff09;tftp协议概述 简单文件传输协议&#xff0c;适用于在网络上进行文件传输的一套标准协议&#xff0c;使用UDP传输特点&#xff1a; 是应用层协议 基于UDP协议实现 数据传输模式 octet&#xff1a;二进制模式&#xff08;常用&#xff09; mail&#xff1a;已经不再…

22、touchGFX学习Model-View-Presenter设计模式

touchGFX采用MVP架构&#xff0c;如下所示&#xff1a; 本文界面如下所示&#xff1a; 本文将实现两个操作&#xff1a; 1、触摸屏点击开关按键实现打印开关显示信息&#xff0c;模拟开关灯效果 2、板载案按键控制触摸屏LED灯的显示和隐藏 一、触摸屏点击开关按键实现打印开…

Mirror网络库 | 实战

此篇为下文&#xff0c;上篇&#xff1a;Mirror网络库 | 说明 一、官方实例说明 场景名说明AdditiveLevels场景为“关卡”&#xff0c;附加形式加载AdditiveScenes加载卸载附加场景Basic基础的连接/断开&#xff0c;消息发送Benchmark服务器1000“怪物”生成性能测试Benchmark…

Jenkins-CICD-python/Java包升级与回退

Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签…

自然语言处理: 第八章chatGPT的搭建

理论基础 Transformer 大模型家族可以分成三类, 至于三者的区别可以参考上一章: Encoder-only,Decoder-only, 只需要Pre_trainEncoder-decoder , 可以在一些任务上无需进行fine_tune 必须要在下游任务进行微调比如Bert &#xff0c; Bart 。 T5 这种无需要微调就能完成一些任…