Arboles En C++
Enviado por rigail1993 • 24 de Febrero de 2013 • 2.436 Palabras (10 Páginas) • 405 Visitas
Problema 1:
A continuación desarrollamos una clase para la administración de un árbol binario ordenado.
Programa:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ArbolBinarioOrdenado1
{
public class ArbolBinarioOrdenado {
class Nodo
{
public int info;
public Nodo izq, der;
}
Nodo raiz;
public ArbolBinarioOrdenado()
{
raiz=null;
}
public void Insertar (int info)
{
Nodo nuevo;
nuevo = new Nodo ();
nuevo.info = info;
nuevo.izq = null;
nuevo.der = null;
if (raiz == null)
raiz = nuevo;
else
{
Nodo anterior = null, reco;
reco = raiz;
while (reco != null)
{
anterior = reco;
if (info < reco.info)
reco = reco.izq;
else
reco = reco.der;
}
if (info < 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 ImprimirEntre (Nodo reco)
{
if (reco != null)
{
ImprimirEntre (reco.izq);
Console.Write(reco.info + " ");
ImprimirEntre (reco.der);
}
}
public void ImprimirEntre ()
{
ImprimirEntre (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();
}
static void Main(string[] args)
{
ArbolBinarioOrdenado abo = new ArbolBinarioOrdenado ();
abo.Insertar (100);
abo.Insertar (50);
abo.Insertar (25);
abo.Insertar (75);
abo.Insertar (150);
Console.WriteLine ("Impresion preorden: ");
abo.ImprimirPre ();
Console.WriteLine ("Impresion entreorden: ");
abo.ImprimirEntre ();
Console.WriteLine ("Impresion postorden:
...