gpt4 book ai didi

c - 设置孪生指针的最有效算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:06:23 24 4
gpt4 key购买 nike

在无向简单图 G = (V, E) 的邻接表表示中,每条边 (u, v) 都有两个邻接表条目:[v] 在 u 的邻接表中,[u] 在v 的邻接列表。这些被称为彼此的孪生。孪生指针是从邻接表条目到它的孪生指针的指针。如果|E| =米和|V| = n,并且内存大小不是约束,在每个邻接表的每个条目中设置孪生指针的最有效算法的时间复杂度是多少?

  1. Θ(n^2)
  2. Θ(m+n)
  3. Θ(m^2)
  4. Θ(n^4)

我的尝试:

官方给出的答案是Θ(m+n)。可以通过跟踪图的 BFS 或 DFS 中的父节点来设置双指针。

Can you give most efficient algorithm to set the twin pointer in each entry in each adjacency list?

最佳答案

由于内存在这里不是约束,首先我们将创建一个数据结构来存储每个邻接表的邻接条目的地址。为了更快地检索,我们将创建一个大小为 (n2) 的二维指针数组,它将指向图中的邻接项。如果u和v之间有一条边,那么我们的数据结构A[u][v]就包含了u的邻接表中v的邻接表项的地址。否则它可以为 NULL。更清晰的图片,请引用下面给出的图片。

关于c - 设置孪生指针的最有效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35769209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com