C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 图表表示 – 链接列表的链接列表大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道邻接列表是使用链表列表表示图形的通用数据结构.我正在为C中的简单搜索引擎实现倒排索引,并且将使用邻接列表.但是,我发现使用邻接列表的一个缺点是,如果你不知道倒排索引中有多少个单词,你必须假设索引中有任意大量的单词(数组元素)以创建邻接列表.这可能导致使用过多的内存.这不是一个大问题,但我想知道是否有更好的方法来实现它. @H_607_5@ @H_607_5@我认为这个问题的一个解决方案是创建一个链表的链表来代表我的倒排索引.我还没有看到很多链表的图表链接列表的示例,所以我假设这不是常用的或传统的表示.我想知道使用链表的链表来表示一般的图表是否合适?或者更好地坚持使用邻接列表?任何见解都会非常感激.

解决方法

两种方法都存在权衡. @H_607_5@ @H_607_5@您可以在不使用额外内存的情况下使用邻接列表,但是,每次插入删除都需要花费O(| V |)时间.

@H_607_5@例如,如果你第一次添加顶点时,你的数组长度加倍,那么每次加倍顶点数时,只需要花费O(| V |)时间.但是,使用这种方法几乎总是会占用额外的内存.

@H_607_5@如果您选择使用LinkedList的LinkedList表示图形,那么您确实可以优化内存,但需要进行大的性能权衡.查找给定节点的邻居从O(| E |)时间到O(| V || E |)时间,这消除了邻接列表的一个最大优点.

@H_607_5@如果您想进行更高级的操作(如遍历图表),性能成本将非常低效.对于顶点的每个邻居,您必须重新遍历节点LinkedList才能找到相邻顶点.

大佬总结

以上是大佬教程为你收集整理的c – 图表表示 – 链接列表的链接列表全部内容,希望文章能够帮你解决c – 图表表示 – 链接列表的链接列表所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。