Explicar Arboles Multimodales

Gracias

1 respuesta

Respuesta
1
¿Al decir multimodales te refieres a que un padre puede tener varios hijos y estos hijos pueden tener varios hijos y así sucesivamente?
Según tu entendimiento, que es un árbol multimodal, redefine mejor tu pregunta para poder ayudarte ya que si tengo conocimiento y ejemplos sobre arboles.
Exactamente me refiero a que un padre puede tener varios hijos y estos hijos pueden tener varios hijos y así sucesivamente
Eso era lo que imaginaba, se llaman arboles enearios, como no has especificado que lenguaje deseas saber como seria el código tengo un muy buen ejemplo en java, se que tu lo podrás adaptar al cualquier otro lenguaje, ya que es casi igualito, te voy a dar una estructura de datos que tengo de ejemplo.
Un grafo(árbol) esta compuesto por nodos, que tienen un valor y un indice, entonces la clase nodo seria así
package ArbolesEnearios;
public class NodoN {
private Object elemento;
private NodoN hijo,hermano;
public NodoN(Object elemento){setElemento(elemento);}
public void setElemento(Object elemento){this.elemento = elemento;}
public Object getElemento(){return elemento;}
public void setHijo(NodoN i){this.hijo = i;}
public NodoN getHijo(){return hijo;}
public void setHermano(NodoN d){this.hermano = d;}
public NodoN getHermano(){return hermano;}
public String toString(){return elemento+"";}
}
Y los metodos para llenar, y mostrar serian asi.
public static void main(String[] args) {
NodoN raiz;
lectura_escritura.escribe("Raiz:");
raiz = new NodoN(new Integer(lectura_escritura.leeInt()));
llenar(raiz);
mostrar(raiz);
lectura_escritura.escribe("\n");
}
public static void mostrar(NodoN raiz){
if(raiz == null){
return;
}
lectura_escritura.escribe(raiz+" ");
mostrar(raiz.getHijo());
mostrar(raiz.getHermano());
}
public static void llenar(NodoN raiz){
int h;
lectura_escritura.escribe("Hijo de "+raiz+": ");
h = lectura_escritura.leeInt();
if(h>=0){
raiz.setHijo(new NodoN(new Integer(h)));
llenar(raiz.getHijo());
llenarHermano(raiz.getHijo());
}
}
private static void llenarHermano(NodoN raiz) {
lectura_escritura.escribe("Hermano de "+raiz+": ");
int h=lectura_escritura.leeInt();
if(h>=0){
raiz.setHermano(new NodoN(new Integer(h)));
llenar(raiz.getHermano());
llenarHermano(raiz.getHermano());
}
}
Ahora, la clase que uso para leer y escribir los datos de consola seria asi
public class lectura_escritura {
private static BufferedReader in;
static{
in = new BufferedReader(
new InputStreamReader(System.in));
}
public static void escribe(String s){
System.out.print(s);
}
public static String leeString(){
String buffer = null;
try {
buffer = in.readLine();
}catch(IOException e){
System.err.println("ES.leeString(): " + e);
}
return buffer;
}
public static int leeInt(){
return Integer.parseInt(leeString());
}
public static void main(String[] args) {
escribe("ingrese su nombre: ");
escribe("Hola " + leeString() + "\n\n");
escribe("ingrese su edad: ");
escribe("Tu tienes " + leeInt() + " años\n");
}
}
Con esto tendrás una idea muy clara de como funcionan los arboles multimodales como tu los llamas, o arboles enearios como yo los llamo, cualquier inquietud no dudes en preguntar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas