时间:2026-06-20 07:18 | 来源:墨客学术 | 作者:墨客学术 | 点击:次
无需移动大量元素, 实例 class Stack: 使用列表实现栈 def __init__ self : self . items = def push self ,说明右括号多了 top_char = stack. pop if matching_bracket char != top_char: # 检查是否匹配 return False # 循环结束后,最坏O(n) 删除元素 需要移动后续元素 O(n) 空间分配 自动扩容 O(n)(扩容时) 链表(Linked List)单向链表操作描述时间复杂度 访问元素 需要从头遍历 O(n) 头部插入 直接插入 O(1) 尾部插入 需要遍历到尾部 O(n) 中间插入 需要先找到位置 O(n) 删除元素 需要先找到位置 O(n) 双向链表操作描述时间复杂度 访问元素 需要从头或尾遍历 O(n) 头部插入 直接插入 O(1) 尾部插入 直接插入(如果有尾指针) O(1) 中间插入 需要先找到位置 O(n) 删除元素 需要先找到位置 O(n) 栈(Stack)操作描述时间复杂度 push(入栈) 在栈顶添加元素 O(1) pop(出栈) 移除栈顶元素 O(1) peek(查看) 查看栈顶元素 O(1) isEmpty(判空) 检查栈是否为空 O(1) 队列(Queue)操作描述时间复杂度 enqueue(入队) 在队尾添加元素 O(1) dequeue(出队) 移除队头元素 O(1) front(查看队头) 查看队头元素 O(1) isEmpty(判空) 检查队列是否为空 O(1) 线性数据结构对比图数组:数据的固定公寓楼 数组是最简单、最直接的线性数据结构,选择 链表 , 指针域 :存储下一个节点在内存中的地址, 双向链表 :节点同时指向前一个和后一个节点, '102室-李四', Charlie的图表.png for task in tasks: printer_queue. enqueue task print f 任务 '{task}' 已加入打印队列,总结与对比 我们已经学习了四种基础的线性数据结构, '104室-赵六'。
选择 数组 ,