Asesoria Arbol n-ario
Publicado por Guillermo (2 intervenciones) el 27/03/2019 00:22:29
hola tengo este codigo para generar un arbol n-ario, quisiera su ayuda para poder resolverlo
la clase nodo
la clase arbol general
y mi clase principal
la clase nodo
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
47
48
49
50
51
52
53
54
public class Nodo {
Object valor; //para almacenar cualquier valor
Nodo hermano;//variable nodo padre
Nodo hijo;//variable nodo padre
int numHijos;
//Creando los constructores
public Nodo(Object valor)
{
this.valor = valor;
this.hermano = this.hijo = null;
}
public Nodo(Nodo hermano,Nodo hijo,Object valor)
{
this(valor);//invoca la variable valor del constructor anterior
this.hermano = hermano;
this.hijo = hijo;
}
/*
Creando los metodos get a set para valor,padre e hijo
*/
public Object getValor() {
return valor;
}
public void setValor(Object valor) {
this.valor = valor;
}
public Nodo getHermano() {
return hermano;
}
public void setPadre(Nodo padre) {
this.hermano = padre;
}
public Nodo getHijo() {
return hijo;
}
public void setHijo(Nodo hijo) {
this.hijo = hijo;
}
/* */
public void nuevoHijo(Nodo nhj)
{
this.hijo = nhj;
numHijos++;
}
}
la clase arbol general
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
public class ArbolGeneral {
Nodo raiz;
public ArbolGeneral()
{
raiz = null;
}
//Verifica si se tiene raiz
public boolean vacia()
{
return (raiz == null) ? true : false;
}
public Nodo insertarRaiz(Object valor)
{
if (vacia())
{
raiz = new Nodo(valor);
}
return raiz;
}
public void insertarNodo(Nodo nodo,Object valor,String padre)
{
Nodo nuevo = new Nodo(valor);
if(nodo.getValor().equals(padre))//aqui ve si el padre es la raiz
{
nodo.nuevoHijo(nuevo); //e inserta nuevo nodo, solo me agrega el primer valor
}else {
/*
Como podria decirle que agregue un nuedo nodo despues de haber agreado el nodo a la raiz, para
segun lo ingresado me lo ponga como hijo o hermano
*/
}
}
public String getRaiz() {
return raiz.valor.toString();
}
}
y mi clase principal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class PruebaArbolGeneral {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
ArbolGeneral arbol = new ArbolGeneral();
Nodo nodo = arbol.insertarRaiz("0");
System.out.println(arbol.getRaiz());
arbol.insertarNodo(nodo, 1, "0");
arbol.insertarNodo(nodo,2,"1");
arbol.insertarNodo(nodo,1.1,"0");
}
}
Valora esta pregunta
0