news 2026/6/26 10:50:06

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
栈和队列的实现以即相应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到第一位.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 15:05:37

多线程与并发核心知识点总结(含高频面试题)

在Java开发中,多线程与并发是核心知识点,也是面试中的高频考点。本文将针对四个关键问题展开详细分析,结合原理和实例帮大家理清思路,夯实基础。一、run()和start()方法的区别在创建并启动线程时,我们常接触到run()和s…

作者头像 李华
网站建设 2026/6/7 4:44:23

基于特征融合的农业病害检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于特征融合的农业病害检测系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 介绍 针对农业领域病害检测,以目标检测领域YOLOv8算法为基准算法进行SDI特征融合优化,训练结果表明优化后的模型准确率提…

作者头像 李华
网站建设 2026/6/19 0:46:01

基于YOLOV8的道路缺陷检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于YOLOV8的道路缺陷检测系统(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 有数据集2000多张模型已经训练好直接用即可 标价就是售价不包远程配置环境项目介绍:软件:PycharmAnaconda环境:python3.9opencv-python PyQt5torc…

作者头像 李华
网站建设 2026/6/17 7:05:23

兰亭妙微实战指南:APP 界面设计 4 大核心原则,平衡美观与实用

在移动互联网高度普及的当下,APP已成为人们工作、生活、娱乐的核心载体,而界面设计则是决定APP竞争力的关键因素。好的APP界面不仅能凭借视觉美感吸引用户,更能通过合理的布局、流畅的交互,降低用户使用成本,提升用户留…

作者头像 李华
网站建设 2026/6/26 1:37:13

ssm429社区共享食堂信息系统--论文

目录社区共享食堂信息系统设计与实现开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!社区共享食堂信息系统设计与实现 摘要 随着城市化进程加快和社区服务需求多元化,共享食堂作为社区公共服务的重要载体&#xff…

作者头像 李华
网站建设 2026/6/21 6:05:31

【Puppeteer 实战】自动登录后台并分页提取表格数据(含 50 条/页切换)

本文通过一个完整示例,演示如何使用 Puppeteer 自动访问后台系统、设置 Cookie、切换分页大小,并循环点击「下一页」抓取所有表格 HTML 数据。一、应用场景说明 在实际项目中,我们经常遇到以下需求: 后台系统需要登录才能访问数据…

作者头像 李华