Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRIMER PARCIAL
INF310 SX‒ Estructuras de Datos II. Gestión 1-2017.
Subgrupo: M-Z
Árbol M-Vías
la cual devuelva la cadena de ubicación del data x en el Arbol. Si x no existe, devuelve la cadena vacía.
Definimos ubicación de un data x en un árbol M-Vías, a aquel String compuesto por los char’s “bb…b@d”, donde cada b es un bit que
representan los hijos por donde descendemos, desde la raíz, para encontrar a x (para los hijos pares b=0, para los impares b=1).
Finalmente d es el número de data que x ocupa en su NodoM (e.g. Si el nodo N contiene a x y N.getData(3)==x, entonces d=3).
Por ejemplo:
Nota: Los unos y ceros mostrados en los punteros hijo, no existen, solo sirven de referencia. A los hijos 1 y 3 (impares) le escribimos 1, mientras que a
los hijos 2 y 4 (pares) le anotamos un 0.
la cual partiendo de un vértice, continúa con el vértice adyacente (no-marcado) cuya arista tenga el menor costo. Finalmente,
devuelve el costo total recorrido.
También, esta función debe mostrar en consola (System.out.println) los vértices que va visitando. Por ejemplo:
Mie 05 de julio de 2017
35 dfsCheap(0)=55 //Consola: 0, 3, 4, 2
dfsCheap(1)=62 //Consola: 1, 6, 2
25 dfsCheap(2)=0 //Consola: 2
2 12 dfsCheap(3)=40 //Consola: 3, 4, 0, 2
0
10 7
6 dfsCheap(4)=107 //Consola: 4, 0, 3, 1, 6, 2
15
4 30 dfsCheap(5)=50 //Consola: 5, 3, 4, 0, 2
25 3 10 dfsCheap(6)=5 //Consola: 6, 1
50 5 dfsCheap(7)=0 //Consola: 7
20
5 10 8 dfsCheap(8)=10 //Consola: 8, 7
20 1
50 12
dfsCheap (1)=62 : 1 ---> 6 ---> 2 (del vértice 6, no se continuó en el vértice 1, porque el 1 estaba marcado).
5 10 25
dfsCheap (3)=40: 3 ---> 4 ---> 0 --> 2 (del vértice 0, no se continuó en el vértice 3, porque el 3 estaba marcado).
10 15 20 50 12
dfsCheap (4)=107 : 4 ---> 0 ---> 3 --> 1 --> 6 --> 2 (del 3 al 4 no se continuó, porque el 4 estaba marcado).
10 5 10 25
dfsCheap (5)=50 : 5 ---> 3 ---> 4 --> 0 --> 2 (del 0 al 3 no se continuó, porque el 3 estaba marcado).
Tip: Cada vez que usted visite un vértice u, márquelo usando el método private marcar(u)
Recuerde: Un DFS jamás visita un vértice más de una vez (por eso se usa el marcado de vértices).