邻接表为什么不用set而用vector存储?
一、邻接表为什么不用set而用vector存储

因为邻接表不需要有序,它只是用来存边的。邻接表较好使用链式前向星,vector存图常数有点大。set的功能:有序、判重、查询,这些对于邻接表来说是累赘。邻接表只需要把边存下来并维护边与边之间的联系即可。判重题目往往都会排除,有序和查询就更用不到了。
邻接表是图的一种链式存储结构。
由两部分组成:表头结点表和边表。
邻接表中每个单链表的名列前茅个结点存放有关顶点的信息,把这一结点看成链表的表头,其余结点存放有关边的信息
(1)表头结点表:包括数据域和链域,数据域存储顶点的名称,链域用于指向链表中名列前茅个结点(与顶点邻接的名列前茅个顶点)
(2)边表:包括邻接点域(指示与顶点邻接的点在图中的位置,即数组下标)、数据域(存储和边相关的信息,如权值)、链域(指示与顶点邻接的下一条边的结点)。
延伸阅读:
二、全局页面置换算法
工作集模型工作集页置换算法缺页率置换算法功能:
当缺页中断发生,需要调入新的页面而内存已满时,选择内存当中哪个物理页面被置换。
目标:
尽可能地减少页面的换进换出次数(既缺页中断的次数)。具体来说,把未来不再使用的或短期内较少使用的页面换出,通常只能在局部性原理指导下依据过去的统计数据来进行预测。
页面锁定(frame locking):
用于描述必须常驻内存的操作系统的关键部分或时间关键(time-critical)的应用程序。实现的方法是L在页表中添加锁定标志位(lock bit)。使其不在页面置换算法范围之内,也就说不会被换入换出。
通常只需要考虑页号,因为偏移号一般不起作用。只保留页号。基于这个list来设计各种的页面替换算法。
通过模拟一个页面置换的行为并且记录产生页缺失数的数量。一般情况下,产生的缺页次数越少,性能就越高。
相关推荐HOT
更多>>
栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
一、栈和队列加入操作限制的原因栈和队列是操作受限线性表,所谓”操作受限”是指只能按照某种固定的规律进行插入和删除操作,无法随意地对其中...详情>>
2023-10-11 22:33:31
ASPICE1级和2级到底具体的区别是什么?
一、ASPICE1级和2级到底具体的区别Level 1意思是实施的过程,仅仅是实施了相关的过程,即可以展示一些WP以说明相关的活动已进行并有了相关的输...详情>>
2023-10-11 21:25:45
主席树和可持久化线段树有什么区别?
一、主席树和可持久化线段树主席树和可持久化线段树没有区别。主席树学名为可持久化线段树,可以用来解决线段树存储历史状态的问题。我们在进行...详情>>
2023-10-11 20:19:10
什么是结构化数据非结构化数据半结构化数据?
一、结构化数据、非结构化数据、半结构化数据结构化数据结构化的数据一般是指可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数...详情>>
2023-10-11 19:24:17热门推荐
p->next->next是什么意思?
沸数据结构中四大经典算法是什么?
热定义数据结构中重复定义结构体类型的作用是什么?
热邻接表为什么不用set而用vector存储?
新为什么给定节点个数的二叉树个数为卡特兰数?
栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
数据结构sqlist和seqlist有什么区别?
ASPICE1级和2级到底具体的区别是什么?
数据结构与算法有哪些内容?
主席树和可持久化线段树有什么区别?
链表(linkedlist)这一数据结构具体有哪些实际应用?
什么是结构化数据非结构化数据半结构化数据?
OracleJDK 和 OpenJDK有哪些区别?
linux和windows的区别?
技术干货
京公网安备 11010802030320号