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

单链表实现队列

题目解析

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

  • 定义队列
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.gsyq.cn/news/14277.html

相关文章:

  • 064_尚硅谷_短路与和短路或
  • 2025年陶瓷定制企业最新推荐榜单:涵盖电子陶瓷,氧化铝陶瓷,氧化锆陶瓷,氮化铝陶瓷,结构陶瓷领域!
  • 实用指南:计算机网络-ipv4首部校验原理
  • 2025 年人工智能培训厂家最新推荐排行榜:聚焦人工智能培训合规运营机构、产业适配能力与教学实力深度解析
  • 2025最新布袋包装厂家推荐排行榜:布袋包装,布袋,手提袋,帆布袋定制,无纺布袋,布袋生产,云南布袋包装,茶叶布袋生产商优选指南
  • 城市电商小程序管理系统:助力商家搭建全渠道数字化经营体系
  • L05_新建springboot项目与新建helloword(菜鸟版)
  • 实用指南:智慧外贸平台|基于Java+vue的智慧外贸平台系统(源码+数据库+文档)
  • ObservableCollection子项属性字段值变化的监听处理
  • 2025年破碎机厂家最新权威推荐榜:破碎机实力厂商技术服务全景评测及选购指南
  • 什么关系?就是ajax与jQuery
  • 2025年沈阳标识标牌厂家最新推荐榜单:涵盖订做标识标牌,广告标识标牌,安全出口标识标牌、不锈钢等多类型标识,全面解读企业产能与技术实力
  • 一文详解决策树:ID3与C4.5算法 - 详解
  • 详细介绍:Java数据结构第二十七期:布隆过滤器,用 “模糊” 换高效的查重黑科技
  • 【MacOS】彻底卸载Navicat
  • JUC:AQS
  • JUC:ThreadLocal
  • 学python的第8天
  • 香橙派5pro驱动开发(一)
  • HR如何摆脱入离职事务性内耗?组织管理系统助力聚焦人才价值挖掘
  • Java EE初阶启程记04---线程的状态 - 实践
  • US$44 YH Remote Key Tester Frequency/Infrared IR
  • 【星海出品】RabbitMQ 死信 - 教程
  • Windows 11 局域网打印机共享设置
  • gpd winmax2 fedora42 睡眠秒唤醒问题
  • 本土化战略赋能:Gitee如何领跑中国DevOps黄金赛道
  • CF1699D Almost Triple Deletions
  • 详细介绍:Servlet完全上手:核心语法与生命周期详解
  • 详细介绍:支持17种方言10种外语!阿里最新AI语音合成模型Qwen3-TTS-Flash震撼发布
  • 荒野猎手出击!启明智显ZX7981PO:专治各种恶劣环境的5G插卡路由器