public void Insertar(NodoBinario <T> Nuevo, T data, Delegate Comparacion) { if (Convert.ToInt16(Comparacion.DynamicInvoke(Nuevo.Data, data)) > 0) { if (Nuevo.Izquierda == null) { NodoBinario <T> NuevoNodo = new NodoBinario <T> { Data = data }; Nuevo.Izquierda = NuevoNodo; } else { Insertar(Nuevo.Izquierda, data, Comparacion); } } else if (Convert.ToInt16(Comparacion.DynamicInvoke(Nuevo.Data, data)) < 0) { if (Nuevo.Derecha == null) { NodoBinario <T> NuevoNodo = new NodoBinario <T> { Data = data }; Nuevo.Derecha = NuevoNodo; } else { Insertar(Nuevo.Derecha, data, Comparacion); } } else { } }
public void Add(T data, Delegate Comparacion) { if (Padre == null) { Padre = new NodoBinario <T>() { Data = data }; } else if (Convert.ToInt16(Comparacion.DynamicInvoke(Padre.Data, data)) < 0) { if (Padre.Derecha == null) { NodoBinario <T> NuevoNodo = new NodoBinario <T> { Data = data }; Padre.Derecha = NuevoNodo; } else { Insertar(Padre.Derecha, data, Comparacion); } } else if (Convert.ToInt16(Comparacion.DynamicInvoke(Padre.Data, data)) > 0) { if (Padre.Izquierda == null) { NodoBinario <T> NuevoNodo = new NodoBinario <T> { Data = data }; Padre.Izquierda = NuevoNodo; } else { Insertar(Padre.Izquierda, data, Comparacion); } } else { } }
public ArbolBinario() { Padre = null; }