• 数据结构与算法简记--栈与队列


    • 操作受限的线性表---先进后出,后进先出;只能一头进出
    • 顺序栈--基于数组;    链式栈--基于链表
    • 动态扩容栈--基于动态数组结构
    • 栈应用:函数调用栈,表达式求值(操作数栈,运算符栈(比较优先级决定是出栈运算还是入栈)),括号匹配
    • 浏览器前进后退功能实现:两个栈A和B,依次打开的链接,依次入栈A,

    后退操作--弹出A栈顶链接,入栈B,显示当前A栈顶链接

    前进操作--弹出B栈顶链接,入栈A,显示当前A栈顶链接

    点开新链接--入栈A,清空栈B,显示当前A栈顶链接

    队列

    • 操作受限的线性表--先进先出,后进后出;一头进,另一头出
    • 顺序队列--基于数组;链式栈--基于链表
    • 顺序队列实现--注意队尾无空间时,在入队时执行一次数据搬移
    • 循环队列实现--注意确定队空和队满的条件:队空:head==tail 队满:(tail+1)%n=head
    • 阻塞队列:队空,读阻塞,队满,写阻塞
    • 并发队列:线程安全队列;基于数组的循环队列,利用 CAS 原子操作,可以实现非常高效的并发队列;循环队列比链式队列应用更广泛。
  • 相关阅读:
    ruby 学习笔记 2 -变量
    sharepoint获取用户属性
    读取Sql Server数据库数据
    更新SQL Server数据库数据
    客户端开发添加sharepoint凭证
    设置Log记录
    C#发送邮件
    echarts饼状图
    提升工作流权限,打开designer的App step功能
    echars折柱混合
  • 原文地址:https://www.cnblogs.com/wod-Y/p/11943998.html
Copyright © 2020-2023  润新知