• 队列知识点


    循环队列:队列从0开始,假如有0、1、2、3、4、5、6、7、8区域,每个区域可能有自己的名字
       空循环队列:首指针和尾指针都指向0区域,尾部指针的区域有值
       满循环队列:首指针和尾指针都指向8区域,尾部指针的区域除满循环队列外都没有值
       
       入队:尾部指针+1
       
       循环队列判断是否满:rear 、front指向同一区域,且不为空
       
       循环队列计算大小
       
    容量和队列长度


       假溢出:顺序存储有1、2、3、4、5其中前4个都有值,只有5是空区域,
               现在出队,1、2两个区域,在入队5、6,明明有1、2、5空但是6却没有地方
               这种现象就是假溢出
               
        循环队列为空的时候,Rear、Front不一定都是0,也可能都是1

    ---------------------------------------------------------------------

       著名的银行家算法,最早是由Dijkstra提出来的。它是一种最有代表性的避免死锁的算法。在避免死锁方法中允许进程动态地申请资源,但系资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待。

        银行家算法最重要的就是判断是可用资源和仍需资源之间的关系,如果可用资源数大于人需资源数,那么我们认为这个进程就是可以执行的,也是安全的,反之,便是不安全的。所以重中之重的是找到各种资源数。

    对进程的判断遵循以下步骤:

    1.计算系统开始时所有的资源数,即开始的可用资源数;

    2.在仍需资源数和可用资源数中作比较,找到符合条件的进程,最后修改进程执行完毕时系统的可用资源数;

    3.继续比较剩余进程和可用资源数,找到下边可以执行的进程;

    4.依次类推;

    --------------------------------------------------------------

    完全二叉树:如果缺少子结点,只能从最右下方开始缺
    满二叉树:每个结点都是满的
    线索二叉树:就是普通二叉数排序后的,已经线索化了,可以通过前序、中序、后序进行遍历
    最优二叉树: 带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树
      给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树。简单的认为就是叶子节点的值

  • 相关阅读:
    Redis高级
    国外客户发开发信怎么发?写外贸邮件方法?
    java批量生成海量测试数据及用ChatGPT提示语一键生成的方法
    韩国突发:将批准比特币ETF
    ELK安装、部署、调试 (八)logstash配置语法详解
    【Spring boot 返回 json 数据】
    C++中类的声明
    C语言--指针与数组--遍历数组的n种方式【详细】
    centos7虚拟机部署苍穹私有云环境记录
    mac安装 scala 详细教程(包含在 idea 上使用,以及scala插件安装)
  • 原文地址:https://blog.csdn.net/douxingpeng1/article/details/125937873