DAY 26冲击蓝桥杯——Python数据结构与算法08 队列(Queue)

本文介绍了Python中的deque双端队列,包括其先进先出的特点,基于链表的数据结构,以及操作如创建、添加、删除和遍历的O(1)时间复杂度。重点讲解了关键操作和时间复杂度分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.1 特点

  • 先进先出
  • 基于链表创建的
  • 单端队列:一个口进一个口出
  • 双端队列:两个口都可以进,两个口都可以出

5.2 时间复杂度

访问:O(N)
搜索:O(N)
插入:O(1)
删除:O(1)

5.3 队列的常见操作

5.3.1 创建队列

# 创建队列
# 该方法为双端队列
queue = deque()

5.3.2 添加元素

# 向末尾添加
queue.append(1)
# 向队列头添加
queue.ap
### 数据结构算法在中医药领域的应用 #### 中医药数据管理中的栈和队列 在中医药领域,数据管理和处理同样可以借助于基本的数据结构如栈和队列来提高效率。例如,在中药方剂配伍规则验证过程中,可以通过栈这种后进先出(LIFO)数据结构来实现药物成分之间的相互作用分析[^1]。 #### 基于树形结构的中药材分类体系构建 对于复杂的药材种类及其属性关系建模而言,采用二叉树或多叉树能够有效地表示不同类别间的层次关联。通过给定的一组前序遍历和中序遍历序列,可重建相应的二叉树模型用于展示各类别间的关系,并进一步支持查询操作以及可视化呈现。此方法有助于整理并理解庞大的药典资料库,方便研究人员快速定位所需信息[^3]。 #### 利用图论优化中医诊疗路径规划 当涉及到疾病诊断流程的设计时,则更多依赖于图这一抽象概念来进行最短路徑寻优等问题求解。比如针对特定病症建立症状-证候网络图,利用Dijkstra算法找出最优治疗方案;或是运用最小生成树原理指导针灸穴位选取策略等实际应用场景[^2]。 ```python def dijkstra(graph, start_node): import heapq distances = {node: float('inf') for node in graph} distances[start_node] = 0 priority_queue = [(0, start_node)] while priority_queue: current_distance, current_node = heapq.heappop(priority_queue) if current_distance > distances[current_node]: continue for neighbor, weight in graph[current_node].items(): distance = current_distance + weight if distance < distances[neighbor]: distances[neighbor] = distance heapq.heappush(priority_queue, (distance, neighbor)) return distances ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值