zoukankan      html  css  js  c++  java
  • 算法:(四)栈和队列

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

    • 栈是先进后出
    • 队列是先进先出
    • 栈和队列在实现结构上可以有数组和链表两种形式
      • 数组结构实现较容易
      • 用链表结构较复杂,因为牵扯很多指针操作

    (二)队列和栈的基本操作

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

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

    • 深度优先遍历可以用栈实现
    • 宽度优先遍历可以用队列实现

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

    • 双端队列首尾都可以压入和弹出元素
    • 优先级队列可根据元素的优先级值,决定元素的弹出元素
    • 优先级队列的结构为堆结构,并不是线性结构
  • 相关阅读:
    Paperfolding HDU
    I
    2020年8月11日第一次组队训练
    2018ICPC南京I. Magic Potion
    【贪心】纪念品分组
    【贪心】删数问题
    【排序】排名
    小X与队列
    B.T.B.F.
    2018浙江理工大学迎新赛——决赛
  • 原文地址:https://www.cnblogs.com/M-M-Monica/p/10121649.html
Copyright © 2011-2022 走看看