数据结构-线性结构入门(数组、链表、栈、队列)

线性结构是最基础的一类结构,元素之间是一对一关系。

数组 vs 链表

  • 数组:随机访问快(O(1)),中间插入删除慢(O(n))
  • 链表:插入删除灵活(已知节点时 O(1)),随机访问慢(O(n))

栈(Stack)

  • 规则:后进先出(LIFO)
  • 常见操作:push / pop / peek
  • 场景:函数调用栈、表达式求值、括号匹配

队列(Queue)

  • 规则:先进先出(FIFO)
  • 常见操作:offer / poll / peek
  • 场景:任务调度、消息缓冲、BFS

选型口诀

  • 频繁按下标取值:优先数组
  • 频繁中间插删:优先链表
  • 只关心“最近一次”:用栈
  • 只关心“最早进入”:用队列