Como reverter um gráfico em tempo linear?

Eu sei que existem duas maneiras de representar o meu gráfico: uma está usando uma matriz e a outra está usando uma lista.

Se eu usar uma matriz, tenho que virar todos os bits da matriz. Isso não leva tempo O (V ^ 2)?

Se eu usar uma lista, não precisarei atravessar cada lista, uma a uma, e criar um novo conjunto? Isso parece levar o tempo O (V + E), que é linear. Estou correcto?

Então, eu tenho outra pergunta aqui. Considere, por exemplo, que eu usei o algoritmo Dijkstra no meu gráfico (uma matriz ou uma lista) e usamos uma fila de prioridades para a estrutura de dados atrás da cena. Existe alguma relação de representação gráfica e o uso de estrutura de dados? Isso afetará o desempenho do algoritmo?

Suponha que eu usasse uma lista para representações e uma fila de prioridade para o algoritmo de Dijkstra, haveria uma diferença entre a matriz e a fila de prioridade de uso para Dijkstra?

Eu acho que isso se relaciona commakeQueue operação apenas? Ou eles não têm nada diferente?

questionAnswers(2)

yourAnswerToTheQuestion