Transformar metodo Iterativo a Recursivo
Publicado por Azazel (2 intervenciones) el 01/11/2016 02:49:27
Saludos!
Tengo un método que guarda los nodos de una Lista Circular Doble un archivo de texto pero no puedo transformarlo a recursivo. Agradecería cualquier tipo de ayuda u opinon.
Esta era una idea pero no me queda:
Tengo un método que guarda los nodos de una Lista Circular Doble un archivo de texto pero no puedo transformarlo a recursivo. Agradecería cualquier tipo de ayuda u opinon.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public static String Guardar(NodoG raiz)
{
String c = "";
String a = "";
String v = "";
try
{
NodoG nodoCiudad = raiz;
do
{
Ciudad cdad = (Ciudad) nodoCiudad.getObj();
try
{
NodoG nodoAero = nodoCiudad.getrAbajo().getSiguiente();
do
{
Aeropuerto ar = (Aeropuerto) nodoAero.getObj();
try
{
NodoG nodoVuelo = nodoAero.getrAbajo().getSiguiente();
do
{
Vuelos vuelo = (Vuelos) nodoVuelo.getObj();
v += vuelo.getNv() + "," + vuelo.getCiudad() + "," + vuelo.getAerolinea() + ","
+ vuelo.getHora() + "," + vuelo.getTipo() + System.getProperty("line.separator");
nodoVuelo = nodoVuelo.getSiguiente();
} while (nodoVuelo != nodoAero.getrAbajo().getSiguiente());
} catch (NullPointerException e)
{
}
a += ar.getNom() + "," + ar.getCiudad() + "," + ar.getDir() + "," + ar.getTel() + "," + ar.getEmail()
+ "," + ar.getGrupo() + "," + ar.getTipo() + System.getProperty("line.separator");
nodoAero = nodoAero.getSiguiente();
} while (nodoAero != nodoCiudad.getrAbajo().getSiguiente());
} catch (NullPointerException e)
{
}
c += cdad.getNom() + "," + cdad.getEdo() + "," + cdad.getPais() + "," + cdad.getNumhbnts()
+ System.getProperty("line.separator");
nodoCiudad = nodoCiudad.getSiguiente();
} while (nodoCiudad != raiz);
} catch (NullPointerException e)
{
}
return (c + "\n" + a + "\n" + v); // Este string lo pongo en otro metodo que tengo para guardar archivos Ejemplo: archivo.Actualizar(Archivo.Guardar(lista.getR().getSiguiente()));
}
Esta era una idea pero no me queda:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public static void GuardarArchivo(NodoG raiz, Arch archivo,String a)
{
while (raiz != null)
{
ListaG l = new ListaG();
l.setR(raiz);
NodoG ne = l.elimina(raiz.getDato());
NodoG tmp = ne.getrAbajo();
ne.setrAbajo(null);
switch (ne.getObj().getClass().getSimpleName())
{
case ("Ciudad"):
{
Ciudad cdad = (Ciudad) ne.getObj();
a += cdad.getNom() + "," + cdad.getEdo() + "," + cdad.getPais() + "," + cdad.getNumhbnts()
+ System.getProperty("line.separator");
break;
}
case ("Aeropuerto"):
{
Aeropuerto ar = (Aeropuerto) ne.getObj();
a += ar.getNom() + "," + ar.getCiudad() + "," + ar.getDir() + "," + ar.getTel() + "," + ar.getEmail() + "," + ar.getGrupo() + "," + ar.getTipo() + System.getProperty("line.separator");
break;
}
case ("Vuelos"):
{
Vuelos vuelo = (Vuelos) ne.getObj();
a += vuelo.getNv() + "," + vuelo.getCiudad() + "," + vuelo.getAerolinea() + "," + vuelo.getHora() + "," + vuelo.getTipo() + System.getProperty("line.separator");
break;
}
default:
{
break;
}
}
GuardarArchivo(tmp, archivo,a);
}
}
Valora esta pregunta


0