单链表实现队列

news/2025/9/30 14:58:53/文章来源:https://www.cnblogs.com/tianzhentian/p/19121113
题目解析

队列的特点是先进先出,其实和单链表的结构类似。我们只需要实现队列的基本功能即可。

  • 定义队列
class LinkedListQueue:  def __init__(self):  # 初始化队列的头尾指针和大小  self.head = None  # 队列头部节点  self.tail = None  # 队列尾部节点  self.size = 0  # 队列中元素的数量
  • 判空
def is_empty(self):  """检查队列是否为空"""  return self.size == 0
  • 查看当前有多少元素
def get_size(self):  """返回队列中元素的数量"""  return self.size
  • 入栈
def offer(self, value):  """向队列尾部添加元素"""  # 创建新节点  node = ListNode(value)  if self.is_empty():  # 如果队列为空,新节点同时成为头尾节点  self.head = node  self.tail = node  self.size += 1  else:  # 如果队列不为空,将新节点链接到尾部,并更新尾指针  self.tail.next = node  self.tail = node  self.size += 1  return self  # 支持链式调用
  • 查看head元素
def peek(self):  """查看队列头部元素但不移除"""  if self.is_empty():  return None  # 队列为空时返回None  else:  return self.head.val  # 返回头部节点的值
  • 处栈
def poll(self):  """移除并返回队列头部元素"""  if self.is_empty():  raise Exception("Queue is empty")  # 队列为空时抛出异常  # 保存头部节点的值  value = self.head.val  # 将头指针移动到下一个节点  self.head = self.head.next  self.size -= 1  # 重要:如果移除后队列为空,需要同时更新尾指针为None  # 防止tail指针悬空指向已移除的节点  if self.head is None:  self.tail = None  return value  # 返回被移除的元素值

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

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

相关文章

苏州网站设计kgwl装修推广网站哪个好

题目描述 美术老师生病了,今天美术课编程老师来上,给大家一张无向图,包含 n个顶点(编号1∼n),m条边,求这张图中的奇点数。 偶点(even vertex):度数为偶数的顶点称为偶点 奇点(odd…

深入解析:2025年电商小程序小量DDoS攻击防护指南:从小流量到大威胁的全面防护方案

深入解析:2025年电商小程序小量DDoS攻击防护指南:从小流量到大威胁的全面防护方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; fo…

本地网站源码十大搜索引擎排行榜

实在是忍不住想记录下这个问题。今天在调试 iOS 平台的时候又遇到了这个问题,让我很恼火。这是第三次遇到了,这次一定要彻底解决他。 ios-deploy was not found找到两个方法,都可以解决问题,先直接给出结论: sudo np…

死锁易错知识点整理

死锁的避免是根据【防止系统进入不安全状态】采取措施实现的 解除死锁一般不会从非死锁的进程处抢夺资源 死锁的四个必要条件中,无法破坏的是【非抢夺是分配】死锁状态一定是不安全状态 产生死锁的根本原因是系统资源…

从手机到汽车音响:蚀刻喇叭网的跨界应用前景 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 天微芯片经销商最新推荐榜:品牌实力测评与采购指南 —— 权威揭秘优质服务商选择标准

在 AI、汽车电子等产业爆发式增长的推动下,天微芯片作为关键元器件的市场需求持续攀升,但采购市场乱象丛生:部分经销商货源渠道不明导致品质堪忧,稀缺型号供应能力不足延误生产,技术支持缺失增加应用风险。尤其国…

珠海横琴建设局网站饰品公司网站建设策划书

转载https://www.ibm.com/developerworks/cn/java/wa-spring1/转载于:https://www.cnblogs.com/fkx1/p/9974527.html

做视频网站付费版百度首页网站推广多少钱一年

文章目录 1. Python中魔术方法的定义2. 魔术方法的分类2.1面向对象特性的增强:2.2运算符重载:2.3语义化编程:2.4控制对象生命周期:2.5容器协议支持:2.6 上下文管理器协议:2.7简化API设计: 3. 部…

做最最优秀的视频网站有哪些dedecms下载站

宽度自适应布局: 1、使用场景: 一侧(左侧或者右侧)为固定的导航或者菜单栏,另一侧将会随着浏览器的缩放而自适应改变其大小。这种布局结构可用于顶层布局结构亦可用于某个局部功能块,常见于各种web系统&am…

读人形机器人27太空中

读人形机器人27太空中1. 太空中 1.1. 长期以来,浩瀚无垠的太空一直是人类探索的前沿,不断挑战着人类的技术和生存极限 1.2. 当人类站在星际旅行和殖民的边缘时,人形机器人成为这些伟大事业中不可或缺的盟友 2. 机器…

2025 年酒店一次性用品源头厂家最新推荐榜单:含牙签牙线筷子套杯盖等全品类及采购选择指南酒店一次性牙签/牙线/筷子套/杯盖/杯垫/杯套用品 厂家推荐

当前酒店行业对一次性用品的需求日益精细化,从客房的牙刷牙膏到餐饮的筷子套、杯垫,再到印刷类的房卡套、信封,品类繁杂且质量要求不断提升。但市场上厂家资质参差不齐,部分厂家存在原料把控不严、环保标准不达标、…

2025 年餐饮一次性用品实力厂家最新推荐榜单:覆盖牙签 / 牙线 / 筷子套 / 杯盖 / 杯垫多品类且资质口碑双优的标杆企业权威甄选

当前餐饮行业对一次性用品的需求持续增长,但市场乱象却让餐饮企业采购面临诸多难题。部分厂家为压缩成本,使用劣质原材料、简化生产流程,导致产品存在卫生不达标、安全无保障等问题;同时,行业内厂家资质参差不齐,…

校内模拟赛 路径 题解

题意: 有一棵 n 个节点的无根树(\(n\le 1.6\times 10^5\)),树上第 i 个节点有一个正整数 \(A_i\) 作为点权。有趣的是,这棵无根树度数为 1 的节点不超过 10 个。 请求出一条树上的路径,使得路径上包含的节点个数…

Vue2 和 Vue3 中 watch 用法和原理详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

05-FreeRTOS的内存管理

概述 在 FreeRTOS 中,内存管理是连接内核功能与硬件资源的核心环节,直接影响系统的实时性、稳定性和资源利用率。对于基于 STM32 的开发,理解 FreeRTOS 的 内存管理方案是实现可靠嵌入式系统的基础。 一、为什么要学…

做网站先做首页wordpress的首页文件夹

在当今快速发展的工业领域,大数据已成为推动企业转型升级的核心动力。工业大数据,以其独特的价值和潜力,正逐渐改变着传统的生产、管理和决策模式。然而,伴随着大数据的快速发展,一系列挑战也随之浮现。本文将深入探讨…

2025攻丝机品牌最新权威推荐排行榜:聚焦全自动攻丝机,半自动等机型,精选攻丝机实力厂商助企业高效选购

当前工业自动化进程持续加快,攻丝机作为机械加工核心设备,其质量与性能直接关系企业生产效率、产品精度及成本控制。但市场上攻丝机品牌繁杂,产品质量参差不齐,部分设备存在精度不足、故障率高、适配性差等问题,加…

​​AI重构混沌工程:智能韧性守护架构高可用时代已来​

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

064_尚硅谷_短路与和短路或

064_尚硅谷_短路与和短路或1.逻辑运算符的注意事项和细节说明,`短路与`和`短路或` 2.案例:短路与,解释:第一个条件为true则整体为true 3.案例:短路或,解释:符号左侧如果为true符号右侧则不执行,符号左侧为fals…

oppoR9m刷Linux系统: 说明-注意事项-知识点

前言全局说明整体介绍说明一、说明 1.1 环境: Windows 7 旗舰版二、想法 几年前,就发现家里闲置手机在角落吃灰。 因为系统是android 使用场景被限制很多。 所以就想,能不能做个家里的网络设备、软路由、网络存储什么…