因为邻接表不需要有序,它只是用来存边的。邻接表较好使用链式前向星,vector存图常数有点大。set的功能:有序、判重、查询,这些对于邻接表来说是累赘。邻接表只需要把边存下来并维护边与边之间的联系即可。
一、邻接表为什么不用set而用vector存储
因为邻接表不需要有序,它只是用来存边的。邻接表较好使用链式前向星,vector存图常数有点大。set的功能:有序、判重、查询,这些对于邻接表来说是累赘。邻接表只需要把边存下来并维护边与边之间的联系即可。判重题目往往都会排除,有序和查询就更用不到了。
邻接表是图的一种链式存储结构。
由两部分组成:表头结点表和边表。
邻接表中每个单链表的名列前茅个结点存放有关顶点的信息,把这一结点看成链表的表头,其余结点存放有关边的信息
(1)表头结点表:包括数据域和链域,数据域存储顶点的名称,链域用于指向链表中名列前茅个结点(与顶点邻接的名列前茅个顶点)
(2)边表:包括邻接点域(指示与顶点邻接的点在图中的位置,即数组下标)、数据域(存储和边相关的信息,如权值)、链域(指示与顶点邻接的下一条边的结点)。
延伸阅读:
二、全局页面置换算法
- 工作集模型
- 工作集页置换算法
- 缺页率置换算法
功能:
当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。
目标:
尽可能地减少页面的换进换出次数(既缺页中断的次数)。具体来说,把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理指导下依据过去的统计数据来进行预测。
页面锁定(frame locking):
用于描述必须常驻内存的操作系统的关键部分或时间关键(time-critical)的应用程序。实现的方法是L在页表中添加锁定标志位(lock bit)。使其不在页面置换算法范围之内,也就说不会被换入换出。
通常只需要考虑页号,因为偏移号一般不起作用。只保留页号。基于这个list来设计各种的页面替换算法。
通过模拟一个页面置换的行为并且记录产生页缺失数的数量。一般情况下,产生的缺页次数越少,性能就越高。