A) Algoritmo: Aplicamos BFS hasta encontrar un ciclo y una vez encontrado eliminamos la arista con mayor costo del ciclo de G. Realizamos este precedimiento hasta que no hayan más ciclos. El subrgafo de G obtenido con estas modificaciones lo llamamos H. devolvemos H. B) Veamos primero que el algoritmo términa: Con cada pasada del BFS que se realiza,se reduce la cantidad de aristas de G en 1 y como la cantidad de aritas de un grafo es finita,sabemos que en algún momento terminará. Ahora veamos que devuelve el MST de G. Como en cada aplicación del BFS,se elimina una arista de un ciclo,entonces G seguirá siendo conexo y además como esta arista es la mas costosa de un ciclo, por 4.20, tenemos que esta no pertenece a ningún árbol recubridor mínimo de G, por lo tanto, el subgrafo resultante tendrá el mismo MST que G. Este proceso se realiza hasta que ya no hayan ciclos en G,entonces aplicando el razonamiento anterior,en cada pasada del BFS,tendremos un subgrafo de G, cada vez más chico, conexo y con el mismo MST que G, en algún momento ya no habrán más ciclos y llegaremos a H, el cual es un grafo conexo y sin ciclos, por lo tanto H es un árbol. Y a su vez sabemos que el MST de H es igual al MST de G. Como H ya es un arbol, entonces el MST de H será él mismo, por lo tanto efectivamente devolvimos el MST de G. C) Asumimos que el grafo G está representado mediante una lista de adyacencia. Por lo tanto,cada pasada del BFS, por lo visto en el teórico, admite una implementación que lleva tiempo O(m+n). Como por letra m<=n+8 entonces algo que lleva tiempo n+m es O(n), entonces cada pasada del BFS lleva tiempo O(m). Eliminar una arista de un ciclo, como este tiene a lo sumo m aristas y m<=n+8 , tenemos que es O(n) también. Entonces cada pasada del BFS + eliminar una arista es O(n) Como en algún momento llegaremos a un subrgrafo H que es un árbol de n vertices, sabemos por la propiedad 3.1 del libro que tiene n-1 aristas, entonces como el en peor caso m=n+8, como mucho hay que aplicar BFS 9 veces. Entonces en total, el algorimto como mucho, ejecuta 9 veces algo de tiempo O(n), entonces el tiempo total del algorimto es O(n).