Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Operaciones Árboles Binarios Marcel Bohorquez Grupo#1
Operaciones Árboles Binarios Marcel Bohorquez Grupo#1
//Grupo: #1
//Fecha: 25/10/2021
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArbolBinario
class Nodo // definición del elemento base de un árbol, llamado nodo, que contiene un
dato y apunta a 2 nodos uno por izquierda y otro por derecha.
class ArbolBinario
{
anterior = posterior;
posterior = posterior.NodoIzquierda;
posterior = posterior.NodoDerecha;
else
return false;
nuevoNodo.Dato = valor;
this.Raiz = nuevoNodo;
else
anterior.NodoIzquierda = nuevoNodo;
else
anterior.NodoDerecha = nuevoNodo;
return true;
{
this.Raiz = Remover(this.Raiz, valor);
if (padre == null)
return padre;
else
if (padre.NodoIzquierda == null)
return padre.NodoDerecha;
return padre.NodoIzquierda;
padre.Dato = ValorMinimo(padre.NodoDerecha);
return padre;
valmin = nodo.NodoIzquierda.Dato;
nodo = nodo.NodoIzquierda;
return valmin;
if (padre != null)
if (padre != null)
RecorridoPreOrden(padre.NodoIzquierda);
RecorridoPreOrden(padre.NodoDerecha);
if (padre != null)
RecorridoInOrden(padre.NodoIzquierda);
RecorridoInOrden(padre.NodoDerecha);
if (padre != null)
RecorridoPostOrden(padre.NodoIzquierda);
RecorridoPostOrden(padre.NodoDerecha);
nodo.NodoIzquierda.Dato + "\n" +
else
if (nodo.NodoDerecha != null)
Console.WriteLine(nodo.NodoDerecha.Dato);
else
Console.WriteLine(nodo.NodoIzquierda.Dato);
if (nodo.NodoIzquierda == null)
{
else
if (nodo.NodoDerecha == null)
else
if (padre != null)
Console.WriteLine("\nEl padre del nodo que contiene el dato " + data + "
es " + padre.Dato);//Mensaje para el usuario
else
return null;
return node;
if (l != null)
return l;
l = Padre(node.NodoDerecha, data);
return l;
if (brother != null)
else
{
return null;
return nodo.NodoDerecha;
return nodo.NodoIzquierda;
if (l != null)
return l;
l = Brother(nodo.NodoDerecha, data);
return l;
nuevoNodo.Dato = llave;
if (Buscar(llave) != null)
return;
if (nodo.NodoIzquierda == null)
nodo.NodoIzquierda = nuevoNodo;
else
return;
nuevoNodo.Dato = llave;
if (Buscar(llave) != null)
return;
if (nodo.NodoDerecha == null)
nodo.NodoDerecha = nuevoNodo;
}
else
return;
class Program
binaryTree.Anadir(1);
binaryTree.Anadir(2);
binaryTree.Anadir(7);
binaryTree.Anadir(3);
binaryTree.Anadir(10);
binaryTree.Anadir(5);
binaryTree.Anadir(8);
Console.WriteLine("Recorrido en PreOrden:");
binaryTree.RecorridoPreOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine("Recorrido en InOrden:");
binaryTree.RecorridoInOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine("Recorrido en PostOrden:");
binaryTree.RecorridoPostOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine();
binaryTree.Info(7);
binaryTree.Left(7);
binaryTree.Right(7);
binaryTree.Padre(7);
binaryTree.Brother(7);
binaryTree.Remover(7);
binaryTree.Remover(8);
binaryTree.RecorridoPreOrden(binaryTree.Raiz);
Console.WriteLine();
binaryTree.IngresarDer(binaryTree.Buscar(10), 11);
binaryTree.IngresarDer(binaryTree.Buscar(10), 2);
binaryTree.RecorridoPreOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine("\nRecorrido en PreOrden:");
binaryTree.RecorridoPreOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("\nRecorrido en InOrden:");
binaryTree.RecorridoInOrden(binaryTree.Raiz);
Console.WriteLine();
Console.WriteLine("Ingrese");
Console.ReadKey();
//Fin
}
Impresión por consola: