Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CÓDIGO
CLASE NODO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArbolBinario
{
class Nodo
{
public int dato;
public Nodo derecho, izquierdo;
public Nodo()
{
}
namespace ArbolBinario
{
class ArbolBinario
{
public Nodo raiz;
public ArbolBinario()
{
}
if (aux == null)
{
padre.izquierdo = nuevo;
return;
}
}
else
{
aux = aux.derecho;
if (aux == null)
{
padre.derecho = nuevo;
return;
}
}
}
}
}
public Boolean estaVacio()
{ return raiz == null;
}
public void intOrden(Nodo raiz)
{
if (raiz != null)
{
intOrden(raiz.izquierdo);
Console.Write("\n");
Console.Write(raiz.dato);
Console.Write("\n");
intOrden(raiz.derecho);
}
}
public void preOrden(Nodo raiz)
{
if (raiz != null)
{
Console.Write(raiz.dato);
Console.Write("\n");
preOrden(raiz.izquierdo);
Console.Write("\n");
preOrden(raiz.derecho);
}
}
public void postOrden(Nodo raiz)
{
if (raiz != null)
{
postOrden(raiz.izquierdo);
Console.Write("\n");
postOrden(raiz.derecho);
Console.Write("\n");
Console.Write(raiz.dato);
}
}
public Nodo buscar(int datoBuscado)
{
Nodo auxiliar = raiz;
while (auxiliar.dato != datoBuscado)
{
if (datoBuscado< auxiliar.dato) {
auxiliar = auxiliar.izquierdo;
}else
{
auxiliar = auxiliar.derecho;
}
if (auxiliar == null)
{
return null;
}
}
return auxiliar;
}
}
}
CLASE APLICACIÓN
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArbolBinario
{
class Aplicacion
{
static void Main(string[] args)
{
ArbolBinario arbol = new ArbolBinario();
int op = 0;
do
{
Console.WriteLine("1.INGRESE DATO EN EL ARBOL\n2.RECORRIDO
INORDEN\n3.RECORRIDO PREORDEN\n4.RECORRIDO POSTORDEN\n5.BUSCAR\n6.SALIR");
op = int.Parse(Console.ReadLine());
switch (op)
{
case 1:
Console.WriteLine("INGRESE DATO EN EL ARBOL");
int dato = int.Parse(Console.ReadLine());
arbol.insertarDato(dato);
break;
case 2:
if (!arbol.estaVacio ())
{
Console.WriteLine("RECORRIDO INORDEN:");
arbol.intOrden(arbol.raiz);
Console.WriteLine("\n");
}
else
{
Console.WriteLine("ARBOL VACIO");
}
break;
case 3:
if (!arbol.estaVacio())
{
Console.WriteLine("RECORRIDO PREORDEN:");
arbol.preOrden(arbol.raiz);
Console.WriteLine("\n");
}
else
{
Console.WriteLine("ARBOL VACIO");
}
break;
case 4:
if (!arbol.estaVacio())
{
Console.WriteLine("RECORRIDO POSTORDEN:");
arbol.postOrden(arbol.raiz);
Console.WriteLine("\n");
}
else
{
Console.WriteLine("ARBOL VACIO");
}
break;
case 5:
if (!arbol.estaVacio())
{
Console.WriteLine("DATO A BUSCAR:");
int dat = int.Parse(Console.ReadLine());
if (arbol.buscar(dat) == null)
{
Console.WriteLine("NO EXISTE");
}
else
{
Console.WriteLine("SI EXISTE");
}
}
else
{
Console.WriteLine("ARBOL VACIO");
}
break;
case 6:
break;
}
} while (op != 6);
}
}
}
RESULTADOS