循环队列:队列从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个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树。简单的认为就是叶子节点的值