算法:(四)栈和队列

(一)栈和队列的基本性质数组

  • 栈是先进后出
  • 队列是先进先出
  • 栈和队列在实现结构上能够有数组和链表两种形式
    • 数组结构实现较容易
    • 用链表结构较复杂,由于牵扯不少指针操做

(二)队列和栈的基本操做spa

  • pop操做(栈尾弹出一个元素)
  • push操做(栈/队列尾加入一个元素)
  • shift操做(队头弹出一个元素)
  • 栈和队列的基本操做,都是时间复杂度都为O(1)的操做

(三)深度优先遍历(DFS)和宽度优先遍历(BFS)指针

  • 深度优先遍历能够用栈实现
  • 宽度优先遍历能够用队列实现

(四)双端队列和优先级队列队列

  • 双端队列首尾均可以压入和弹出元素
  • 优先级队列可根据元素的优先级值,决定元素的弹出元素
  • 优先级队列的结构为堆结构,并非线性结构
相关文章
相关标签/搜索