Pointers 对象图的优点和缺点

Pointers 对象图的优点和缺点,pointers,object,graph,Pointers,Object,Graph,对象指针图形表示法的优缺点是什么? 在哪些情况下,它比邻接列表和邻接矩阵更好? 插入、删除、添加边、删除边、检查邻居、检查顶点邻居的大小的复杂性是什么?如果您指的是分配的新节点、malloc等节点对象的表示,这些节点对象包含指向其他节点的指针列表,然后,主要的区别是,您不会像处理存储在按节点编号索引的数组中的编号节点和邻接一样,自动获取对图中所有节点的引用。您通常对诸如源和/或汇这样的可区分节点感兴趣,因此只保留这些子集的列表 当然,如果从数组中分配节点对象,那么这两种形式是完全等效的 如果应用

对象指针图形表示法的优缺点是什么? 在哪些情况下,它比邻接列表和邻接矩阵更好?
插入、删除、添加边、删除边、检查邻居、检查顶点邻居的大小的复杂性是什么?

如果您指的是分配的新节点、malloc等节点对象的表示,这些节点对象包含指向其他节点的指针列表,然后,主要的区别是,您不会像处理存储在按节点编号索引的数组中的编号节点和邻接一样,自动获取对图中所有节点的引用。您通常对诸如源和/或汇这样的可区分节点感兴趣,因此只保留这些子集的列表

当然,如果从数组中分配节点对象,那么这两种形式是完全等效的

如果应用程序中的系数2很重要,那么在64位计算机上,可以通过在阵列中存储多达4GA的节点来节省空间,因为可以使用32位索引而不是64位指针来引用它们。索引对于调试来说也更具可读性:节点42而不是0xf23a456792341280处的节点

数组中邻接列表/节点的唯一缺点是删除。要从已删除的节点获取空间,需要将已删除的条目从数组中挤出,并调整所有邻接或指针以匹配