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

一文搞懂蓝桥杯Python赛道备赛——Day4:数据结构基础(链表、栈、队列、二叉树、堆、哈希表):核心原理+实战案例

之前对这个技术只是浅尝辄止,这次花了一周时间深入研究,收获很多,整理成文分享出来。

   本博客就蓝桥杯中所需的数据结构基础知识进行解释,包括:链表、栈、队列、二叉树、堆和哈希表。每一种数据结构都在给出概念解释的同时,给出了其定义方式和基本操作的示例代码,以供低年级师弟师妹们学习和练习。

   前序知识:
(1)Python基础语法
(2)Python OOP(面向对象编程)


基础算法(操作)

      • 一、链表
      • 二、栈
      • 三、队列
      • 四、二叉树
      • 五、堆
      • 六、哈希表

一、链表

1. 定义:
   链表是由节点构成的线性数据结构,每个节点包含数据域(Data)和指针域(Next)。如下图所示为典型的“单链表”,节点通过指针连接形成链式结构,支持动态内存分配。
在这里插入图片描述

2. 核心知识点:
(1)节点结构:数据域存储值,指针域存储下一个节点的地址。
(2)单链表 vs 双链表:双链表多一个指向前驱节点的指针。下图为“ 双链表”,比较二者的差异:
在这里插入图片描述

⚠️ 踩坑记录:

我在实际项目中遇到过一个问题,这个配置在开发环境正常,但生产环境会报错。 后来发现是因为生产环境的版本不一致导致的。建议大家在部署前一定要检查版本兼容性。

(3)操作时间复杂度:
         - 访问:O(n) ;
         - 插入/删除:O(1)(已知位置时)。
(4)虚拟头节点:简化边界条件处理。
(5)优点:数组需要连续空间存储,而链表则可以是非连续空间存储,使用Next指针连接下一个节点,提升了存储资源利用率。

3. 示例代码:

# 链表
class Node:
def __init__(self, data):
self.data = data  # 节点数据
self.next = None   # 下一个节点指针
# 创建链表
head = Node(1)            # 头节点
second = Node(2)
third = Node(3)
head.next = second        # 连接节点
second.next = third
# 遍历链表
def print_list(node):
while node is not None:
print(node.data, end=" -> ")
node = node.next
print("None")
print_list(head)  # 输出:1 -> 2 -> 3 -> None
# 插入节点(在第二个位置插入0)
new_node = Node(0)
new_node.next = second.next
second.next = new_node
print_list(head)  # 输出:1 -> 2 -> 0 -> 3 -> None
# 删除节点(删除值为2的节点)
current = head
while current.next.data != 2:
current = current.next
current.next = current.next.next
print_list(head)  # 输出:1 -> 0 -> 3 -> None

二、栈

1. 定义:
   后进先出(LIFO)的线性数据结构,只允许在栈顶进行插入(push)和删除(pop)操作。
在这里插入图片描述

2. 核心知识点:
(1)核心操作:
         - push:元素入栈;
         - pop:栈顶元素出栈;
         - peek:查看栈顶元素。
(2)实现方式:数组/链表。
(3)经典应用:
         - 函数调用栈;
         - 括号匹配校验。

3. 示例代码:

# 用列表模拟栈,也可以用链表来模拟栈
stack = []
# 入栈操作
stack.append(10)  # 栈底 -> [10]
stack.append(20)  # 栈变为 [10, 20]
stack.append(30</
http://www.jsqmd.com/news/380087/

相关文章:

  • 2026年橡胶挤出机厂家权威推荐榜:橡胶挤出生产线、橡胶挤出硫化生产线、复合橡胶挤出机、硅橡胶挤出机、卧式橡胶挤出机选择指南 - 优质品牌商家
  • 2026年防爆刷子工具公司权威推荐:内六角防爆扳手工具、多用途防爆工具、无火花防爆工具、特殊防爆扳手工具、防爆刀具工具选择指南 - 优质品牌商家
  • 2026年卧式橡胶挤出机厂家最新推荐:橡胶挤出硫化生产线/复合橡胶挤出机/橡胶挤出生产线/硅橡胶挤出机/冷喂料橡胶挤出机/选择指南 - 优质品牌商家
  • 2026年橡胶挤出生产线厂家推荐:硅橡胶挤出机/复合橡胶挤出机/橡胶挤出硫化生产线/橡胶挤出生产线/冷喂料橡胶挤出机/选择指南 - 优质品牌商家
  • 2026年复合橡胶挤出机厂家权威推荐榜:橡胶挤出硫化生产线/橡胶挤出生产线/硅橡胶挤出机/复合橡胶挤出机/冷喂料橡胶挤出机/选择指南 - 优质品牌商家
  • 2026年污水处理设备公司权威推荐:兰州高速服务区污水处理设备/甘肃污水处理设备/兰州MBR一体化污水处理设备/选择指南 - 优质品牌商家
  • 让意义显形:基于“自感”理论的AI交互实验
  • 江苏床上用品优质厂家评测:谁在引领功能性家纺新趋势? - 2026年企业推荐榜
  • 2026年宁夏污水处理设备厂家最新推荐:兰州地埋式污水处理设备、兰州屠宰厂污水处理设备、兰州污水处理设备、兰州生活污水处理设备选择指南 - 优质品牌商家
  • 2026年生活污水处理设备厂家推荐:新疆污水处理设备/甘肃污水处理设备/西藏污水处理设备/青海污水处理设备/兰州MBR一体化污水处理设备/选择指南 - 优质品牌商家
  • 2026年微型气泵厂家权威推荐榜:无刷气泵、气体采样泵、真空脱气气泵、防爆气泵、医用负压真空泵、小型气泵、小型真空泵选择指南 - 优质品牌商家
  • 2026年值得关注的五家天花吊顶铝型材实力厂商 - 2026年企业推荐榜
  • 2026年评价高的海外投资备案ODI公司推荐:越南公司注册、香港公司注册、上海境外投资备案ODI、企业境外投资备案ODI选择指南 - 优质品牌商家
  • 2026年医院污水处理设备公司权威推荐:兰州地埋式污水处理设备、兰州屠宰厂污水处理设备、兰州污水处理设备、兰州生活污水处理设备选择指南 - 优质品牌商家
  • 大数据领域Hive在医疗科技行业的数据处理应用
  • 延津县家电清洗服务深度评测:如何选择专业靠谱的团队? - 2026年企业推荐榜
  • 2026年高速服务区污水处理设备厂家推荐:兰州食品厂污水处理设备/兰州高速服务区污水处理设备/新疆污水处理设备/选择指南 - 优质品牌商家
  • Qwen-Image-Edit-F2P与STM32嵌入式系统的集成探索
  • 2026年合肥空气检测服务公司综合评估与精选推荐 - 2026年企业推荐榜
  • 2026年地板厂家权威推荐榜:玻璃地板/通风地板/铝合金地板/全钢地板/硫酸钙地板/网络地板/陶瓷地板/架空地板/选择指南 - 优质品牌商家
  • Qwen3-TTS开箱体验:低延迟语音生成实测
  • 2026年屠宰厂污水处理设备厂家推荐:青海污水处理设备/兰州MBR一体化污水处理设备/兰州农村污水处理设备/兰州医院污水处理设备/选择指南 - 优质品牌商家
  • PostgreSQL中的GIN索引优化与大小检查
  • SDXL-Turbo在电商领域的创新应用:商品图智能生成
  • 定制 Azure AD B2C 的密码重置界面
  • Qwen2.5-1.5B详细步骤:从HuggingFace下载模型到Streamlit界面启动全链路
  • 参与者人数分析与R语言的应用
  • SenseVoice-Small ONNX算力优化方案:Int8量化使CPU推理提速2.3倍
  • SenseVoice-Small ONNX算力优化:FP32→Int8量化后推理速度提升3.2倍
  • 2026年防静电地板厂家推荐:玻璃地板、通风地板、活动地板、硫酸钙地板、网络地板、铝合金地板、陶瓷地板、全钢地板选择指南 - 优质品牌商家