新闻详情

新闻详情

首页 / 资讯中心 / 详情

08_队列的实现-基于单链表

发布时间:2026/9/12 4:49:38来源:尧图网络
08_队列的实现-基于单链表
2.4.2 单向队列功能的定义方法说明size()返回队列中元素个数is_empty()判断队列是否为空push(item)向队尾添加元素pop()从队首取出元素peek()访问队首元素classEmptyQueueError(Exception):passclassNode:def__init__(self,item,nextNone):self.itemitem self.nextnextclassQueue:def__init__(self):self.__headNoneself.__size0propertydefsize(self):returnself.__sizedefis_empty(self):returnself.__size0# 定义以单链表的头为队头以单链表的尾为队尾defpush(self,item):# 第一步创建新结点new_nodeNode(item)# 第二步添加元素# 2.1 队列为空ifself.__headNone:self.__headnew_nodeelse:# 2.2 队列不为空# 查询队尾nodeself.__headwhilenode.next!None:nodenode.next# 循环出来node.next None,此时node为队列的最后一个结点node.nextnew_node# 第三步个数1self.__size1defpop(self):ifself.is_empty():raiseEmptyQueueError(队列已空)itemself.__head.item self.__headself.__head.nextself.__size-1returnitem# 队头出列defpeek(self):ifself.is_empty():raiseEmptyQueueError(队列已空)returnself.__head.itemdef__str__(self):result# 遍历nodeself.__headwhilenodeisnotNone:resultstr(node.item)result-ifnode.nextelsenodenode.nextreturn队头:result:队尾if__name____main__:qQueue()print(初始size:,q.size)print(是否为空:,q.is_empty())q.push(a)q.push(b)q.push(c)print(q,q)try:print(peek:,q.peek())q.pop()print(q,q)print(peek:,q.peek())q.pop()print(q,q)print(peek:,q.peek())q.pop()print(q,q)print(peek:,q.peek())q.pop()print(q,q)q.pop()print(q,q)q.peek()exceptEmptyQueueErrorase:print(e)
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

MOSFET栅极驱动Rg与Lg如何影响开关波形?LTspice仿真与PCB布局实战解析 2026/9/12 4:47:06

MOSFET栅极驱动Rg与Lg如何影响开关波形?LTspice仿真与PCB布局实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
fhEVM 门限式 KMS 后端:基于 t-out-of-n 安全多方计算(MPC)的 FHE 密钥保护方案 2026/9/12 4:47:06

fhEVM 门限式 KMS 后端:基于 t-out-of-n 安全多方计算(MPC)的 FHE 密钥保护方案

fhEVM 门限式 KMS 后端:基于 t-out-of-n 安全多方计算(MPC)的 FHE 密钥保护方案 【免费下载链接】fhevm FHEVM, a full-stack framework for integrating Fully Homomorphic Encryption (FHE) with blockchain applications 项目地址: http…

阅读更多 →
如何把 Graphiti MCP 服务器接入 Cursor 并配置 HTTP 端点与 group_id? 2026/9/12 4:47:06

如何把 Graphiti MCP 服务器接入 Cursor 并配置 HTTP 端点与 group_id?

如何把 Graphiti MCP 服务器接入 Cursor 并配置 HTTP 端点与 group_id? 【免费下载链接】graphiti Build Real-Time Knowledge Graphs for AI Agents 项目地址: https://gitcode.com/GitHub_Trending/grap/graphiti 本文的任务是在本机跑起 Graphiti 的 MCP …

阅读更多 →
处理超大扫描件:OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置 2026/9/12 4:47:06

处理超大扫描件:OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置

处理超大扫描件:OCRmyPDF 的 Tesseract 大图像降采样 --tesseract-downsample-large-images 配置 【免费下载链接】OCRmyPDF OCRmyPDF adds an OCR text layer to scanned PDF files, allowing them to be searched 项目地址: https://gitcode.com/GitHub_Trendin…

阅读更多 →
在 Continue(VS Code / JetBrains)中启用 planning-with-files:文件化持久规划的完整集成指南 2026/9/12 4:47:06

在 Continue(VS Code / JetBrains)中启用 planning-with-files:文件化持久规划的完整集成指南

在 Continue(VS Code / JetBrains)中启用 planning-with-files:文件化持久规划的完整集成指南 【免费下载链接】planning-with-files Persistent file-based planning for AI coding agents and long-running tasks. Crash-proof markdown pl…

阅读更多 →
Spring Boot集成OpenTelemetry实现分布式链路追踪实战 2026/9/12 4:44:06

Spring Boot集成OpenTelemetry实现分布式链路追踪实战

1. 项目概述在微服务架构盛行的当下,系统间的调用关系变得异常复杂。记得去年我们团队排查一个订单超时问题,花了整整三天时间才定位到是支付服务到风控服务的gRPC调用出现了偶发性阻塞。这种场景下,分布式链路追踪技术就像给系统装上了X光机…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞