¿Cómo revertir una gráfica en tiempo lineal?

Sé que hay dos formas de representar mi gráfica: una usa una matriz y la otra usa una lista.

Si uso una matriz, tengo que voltear todos los bits en la matriz. ¿No lleva eso O (V ^ 2) tiempo?

Si utilizo una lista, ¿no tendría que recorrer cada lista, una por una, y crear un nuevo conjunto? Eso parece tomar un tiempo O (V + E) que es lineal. ¿Estoy en lo correcto?

Entonces, tengo otra pregunta aquí. Considere, por ejemplo, que uso el algoritmo Dijkstra en mi gráfico (ya sea una matriz o una lista), y usamos una cola de prioridad para la estructura de datos detrás de la escena. ¿Existe alguna relación entre la representación gráfica y el uso de la estructura de datos? ¿Afectará el rendimiento del algoritmo?

Supongamos que usara una lista para representaciones y una cola de prioridad para el algoritmo Dijkstra, ¿habría una diferencia entre la matriz y la cola de prioridad de uso para Dijkstra?

Supongo que se relaciona conmakeQueue operación solamente? ¿O no tienen nada diferente?

Respuestas a la pregunta(2)

Su respuesta a la pregunta