В представлении списка смежности неориентированного простого графа G = (V, E) каждое ребро (u, v) имеет две записи списка смежности: [v] в списке смежности u и [u] в списке смежности графа v. Их называют близнецами друг друга. Двойной указатель — это указатель из записи списка смежности на его двойник. Если |Е| = m и |V| = n, и размер памяти не является ограничением, какова временная сложность наиболее эффективного алгоритма для установки двойного указателя в каждой записи в каждом списке смежности?
- Θ(n^2)
- Θ(m+n)
- Θ(m^2)
- Θ(n^4)
Моя попытка:
Официальный ответ дан Θ(m+n). Двойные указатели можно настроить, отслеживая родительский узел в BFS или DFS графа.
Можете ли вы дать наиболее эффективный алгоритм для установки двойного указателя в каждой записи в каждом списке смежности?