Anda di halaman 1dari 5

Nombre de la materia

Algoritmos y estructuras de datos

Nombre de la Licenciatura
Ing. En Sistemas Computacionales

Nombre del alumno


Eduardo Benito Garca

Matrcula
000042192

Nombre de la Tarea
A rboles

Unidad
4

Nombre del Profesor


Sandra Castillo Lo pez

Fecha
23-06-17
Unidad 4: rboles
Algoritmos y estructuras de datos

Arboles

Introduccin:
Un rbol es una estructura de datos bidimensional, no lineal con propiedades especiales. Los
nodos de un rbol contienen 2 o ms enlaces. Los arboles cuyos nodos contienen 2 enlaces de
los cuales uno, ambos o ninguno puede ser null. El nodo raz es el primer nodo de un rbol,
cada enlace en el nodo raz hace referencia a un hijo. El hijo izquierdo es el primer nodo en el
subrbol izquierdo y el hijo derecho es el primer nodo en el subrbol derecho; los hijos de un
nodo especfico se llaman hermanos. Un nodo sin hijos se llama nodo hoja. Por lo general los
cientficos computacionales dibujan los arboles partiendo desde el nodo raz, hacia abajo;
exactamente lo opuesto a la manera en que crecen la mayora de los arboles reales.

Cdigo

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;

2
Unidad 4: rboles
Algoritmos y estructuras de datos

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();

3
Unidad 4: rboles
Algoritmos y estructuras de datos

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)


{
int valor;
string linea;
ArbolBinarioOrdenado abo = new ArbolBinarioOrdenado();
do
{
Console.Write("Ingrese cualquier numero:");
linea = Console.ReadLine();
valor = int.Parse(linea);
if (valor >= 1) ;
}
while (valor!=0);

Console.WriteLine("Impresion preorden: ");


abo.ImprimirPre();
Console.WriteLine("Impresion entreorden: ");
abo.ImprimirEntre();
Console.WriteLine("Impresion postorden: ");
abo.ImprimirPost();
Console.ReadKey();
}
}
}

4
Unidad 4: rboles
Algoritmos y estructuras de datos

Conclusiones:
En este tema se aprendi que los tipos simples son tipos struct por valor, pero de todas
formas pueden usarse en cualquier parte en la que se esperen los objetos object en un
programa, debido a las conversiones boxing y unboxing. Tambin se aprendi que las listas
enlazadas son colecciones de elementos de datos que se enlazan entre s en una cadena; de
igual manera en un programa se pueden realizar inserciones y eliminaciones en cualquier parte
de una lista enlazada. Tambin vimos arboles binarios de bsqueda que facilita las bsquedas
de alta velocidad y la ordenacin de los datos, adems de una eficiente eliminacin de los
valores duplicados.

Bibliografa:
Cmo programar en C# (Deitel & Deitel, 2007)
http://aulavirtual.utel.edu.mx/lib/ebook_pearson.php?id_ebook_pearson=158

Recorrido rbol (Instituto Tecnolgico de Tijuana, s/f).


http://gc.initelabs.com/syllabus/cloud/visor.php?
container=L1IS104_1035_615_35451_0&object=Recorrido_arbol.pdf

Anda mungkin juga menyukai