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

栈和队列的实现以即相应QJ题的总结

1.首先对顺序表以及链表的区别总结

顺序表链表
物理空间连续物理空间不连续
支持使用下标随机访问不支持随机访问
任意位置的插入删除效率低O(N)任意位置的插入删除效率高O(1)
扩容方法容易造成浪费按需扩容
缓存利用率高缓存利用率低

对缓存利用率的理解:

CPU处理内存中的数据有两种方式

(1)处理寄存器从内存中获取的数据 (一般是几个字节大小)

(2)内存到CPU过程中还可以通过缓存路线运输

内存的数据通过三层缓存加工,最后在第三层被CPU处理(常用于处理大数据)

从内存到缓存的数据运输是从要使用的数据开始之后的一段数据(不管是否要使用)

如果后面的数据有用就使用,不然就从新的数据段开始运输.

因此,顺序表由于空间上连续,缓存段中的有效数据多,因此缓存利用率高.

链表由于空间上不连续,缓存段中的有效数据少,因此缓存利用率低.

正篇开始

1.queue的实现

queue遵循尾进头出,因此采用链表的方式实现

为保证时间复杂度的最小,我们需要对链表的头和尾进行保存同时对大小进行管理,因此考虑使用struct 进行统一管理.

结点的创建

对象的设计

所有成员的申明

成员的实现

栈的实现

遵序头进头出,露头就秒

节点申明

成员申明

top如果想要指向最后一个元素,top = -1 的初始化才对.

但此处我们更想要top 有size的效果,因此要top = 0,但此时top就指向最后一个元素的下一位了.

下面是三道题,使用的队列和栈与上面的完全相同

1.使用两个队列实现栈

解法:先将数全部push 到一个队列中,然后将size - 1 个放进另一个队列中,剩下的一个就是stack的第一个.

代码

针对于pop和top,可以采用假设法

不断的试错后,我明白了,如果只是对指针内部成员进行修改,一级指针即可,二级指针一般出现在需要获取一级指针地址或要修改一级指针指向的时候.

用栈生成队列

解法:一个栈作为push,一个作为pop.pop完了再push.

最后一题,循环队列

解法:设计k+1个位置,使用%操作来进行循环

对于循环的再补充啊

a % N ,N的大小取决于循环圈的大小,N与循环圈等大,为了最后一位N-1到N位越界时%N为0到第一位.

http://www.jsqmd.com/news/259018/

相关文章:

  • 2026建筑模板/建筑清水模板/清水建筑模板/建筑木工模板/建筑覆膜模板厂家权威推荐榜:漳州飞鲸工贸等实力厂商,适配高层/桥梁/住宅多场景施工需求 - 品牌推荐官
  • 吐血推荐10个AI论文网站,专科生毕业论文轻松搞定!
  • 百考通AI任务书功能:告别手忙脚乱,智能生成符合学院规范的毕业设计任务书
  • Python实现PDF 转 JPG 批量转换工具 - 教程
  • 实用指南:蓝牙开发避坑:一文搞懂UART硬件流控中的CTS与RTS
  • 百考通AI任务书功能:智能生成贴合你研究方向的专业任务书,规范高效一步到位
  • 百考通AI任务书功能:智能生成贴合你专业的毕业设计任务书,规范、高效、一次成型
  • 2026亚马逊绿标(CPF)最新玩法:零成本撬动流量,中小卖必看指南
  • 指针和引用
  • 上线只是开始:揭秘大模型为何需要持续“保养”与迭代
  • 百考通AI任务书功能:一键生成专业、规范、可落地的毕业设计任务书
  • API 聚合这件事,本质是在帮业务挡风险
  • 基于蒙特卡洛概率潮流计算 在IEEE33节点系统中,由于风光出力的不确定性,利用蒙特卡洛生成风...
  • 如何快速掌握JavaSE的核心语法?
  • 百考通AI任务书功能:精准匹配学科规范,一键生成高质量毕业设计任务书
  • 2025浙江户外骑行宝藏地,口碑爆棚速来!山地车/山地车骑行/山地速降/户外骑行,户外骑行旅游打卡点口碑排行 - 品牌推荐师
  • 百考通AI任务书功能:智能生成规范任务书,助力毕业设计高效启航
  • 兰亭妙微:以UI界面设计与交互设计为核,WPF开发赋能芯片工业软件界面设计新升级
  • 总结篇:2025 回顾 2026 展望:Cesium 的“高光之年”与“跃迁之始”
  • 鲁大师 v6.1026.4505.112 精简单文件绿色版
  • 2026年不锈钢/铝合金/防火/锌铝镁/模压电缆桥架厂家精选:适配工业与建筑多场景电力工程 - 品牌推荐官
  • 导师推荐2026 TOP10 AI论文软件:本科生毕业论文写作全攻略
  • 在 App 项目中接入 XinServer 自动生成接口
  • 威纶通触摸屏一机多屏程序探索:开启自动化控制新视野
  • 不得了!口碑超棒的天玑AIGEO优化系统来袭!
  • Chrome 自动填充“用户名”到普通输入框 - 解决方案
  • 从入门到进阶:VitePress 构建高效静态站点全指
  • 基于 OpenAPI 规范生成亚马逊广告(Amazon Ads)Java SDK
  • 如何安全批量更新数据库某个字段
  • 2025年精选:武汉地区加气块定制厂家推荐榜单,国内加气块定制厂家综合实力与口碑权威评选 - 品牌推荐师