Clase nodo
(https://i.imgur.com/y4opsFJ.png)
Clase arbol binario
public class ArbolBinarioOrdenado
{
private Nodo raiz;
public ArbolBinarioOrdenado()
{
raiz = null;
}
public void insertar(int dato)
{
Nodo nuevo = new Nodo();
nuevo.Info = dato;
nuevo.Der = null;
nuevo.Izq = null;
if(raiz == null)
{
raiz = nuevo;
}
else
{
Nodo anterior = null;
Nodo reco = null;
reco = raiz;
while (reco != null)
{
anterior = reco;
if (dato < reco.Info)
{
reco = reco.Izq;
}
else
{
reco = reco.Der;
}
}
if (dato < anterior.Info)
{
anterior.Izq = nuevo;
}
else
{
anterior.Der = nuevo;
}
}
}
private void imprimirPre(Nodo reco)
{
if(reco != null)
{
Console.Write(reco.Info+" ");
imprimirPre(reco.Izq);
imprimirPre(reco.Der);
}
}
public void imprimirPre()
{
imprimirPre(raiz);
Console.WriteLine();
}
private void imprimirPost(Nodo reco)
{
if (reco != null)
{
imprimirPost(reco.Izq);
imprimirPost(reco.Der);
Console.Write(reco.Info + " ");
}
}
public void imprimirPost()
{
imprimirPost(raiz);
Console.WriteLine();
}
}
}
No termino de entender como funciona el método insertar. Si alguien que la tenga super clara con listas nodos y pilas me explique el método insertar paso a paso lo mejor que pueda, lo super agradecería. Hasta el While mas o menos lo entiendo. Pero en el While con reco y anterior no comprendo que hace.
Saludos y gracias :-*