Você está na página 1de 7

Nombre de la materia

Algoritmos y estructuras de datos

Nombre de la Licenciatura
Ingenieríía en Sistemas Computacionales.

Nombre del alumno


Luis Manuel Mora Loí pez

Matrícula
000577912

Nombre de la Tarea
AÁ rboles

Unidad 4
AÁ rboles

Nombre del Profesor


Prof. Joseí Martíín Osuna Flores

Fecha
11/02/2019
Unidad 4: Árboles
Algoritmos y estructuras de datos

¿Sabías qué….?

Las árboles binarios son utilzados para comprimir datos, especificamente son utilizados en la
codificación Huffman que es usado ampliamente ya que es un sistema válido para la
compresión y posterior transmisión de cualquier dato en formato digital, pudiendo aplicarse
a faxes, modems, redes de computadoras y televisión.

ACTIVIDAD 6

Objetivos:

 Comprender la implementación y funcionamiento de un árbol binario.

Instrucciones:
Después de revisar los videos y los recursos siguientes debes desarrollar la actividad 6.

Lectura
 Como programar en C# (Deitel y Deitel, 2007), capitulo 24: Estructuras de
datos (págs. 984-997)

¿Cómo entregar la tarea?

Descargar la actividad en archivo de Word y responder directamente en el documento


anexando el código fuente del programa. Favor de cargar el documento en el
apartado de tarea 6, además cargar los archivos del programa de forma
comprimida (en un solo archivo) como evidencia de la actividad para su revisión
correspondiente.

2
Unidad 4: Árboles
Algoritmos y estructuras de datos

Forma de evaluacioí n:

Criterio Ponderación

Presentación 10%

Desarrollo del ejercicio: 90%

 Solicite al usuario un número que se


almacenará en el árbol. (Valor 3.0
puntos.)

 Guarde el número en el árbol que fue


introducido por el usuario. (Valor 3.0
puntos.)

 Muestre el contenido y recorridos del


árbol en la pantalla. (Valor 3.0
puntos.)

Introducción:
Un árbol es una estructura de datos bidimensional, no lineal con propiedades
especiales. Los nodos de un árbol contienen 2 o más enlaces. Los arboles cuyos nodos
contienen 2 enlaces de los cuales uno, ambos o ninguno puede ser “null”. El nodo raíz
es el primer nodo de un árbol, cada enlace en el nodo raíz hace referencia a un hijo. El
hijo izquierdo es el primer nodo en el subárbol izquierdo y el hijo derecho es el primer
nodo en el subárbol derecho; los hijos de un nodo específico se llaman hermanos. Un
nodo sin hijos se llama nodo hoja. Por lo general los científicos computacionales dibujan
los arboles partiendo desde el nodo raíz, hacia abajo; exactamente lo opuesto a la
manera en que crecen la mayoría de los arboles reales.

3
Unidad 4: Árboles
Algoritmos y estructuras de datos

Código

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;
}
}

4
Unidad 4: Árboles
Algoritmos y estructuras de datos

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)


{
int valor;
string linea;

5
Unidad 4: Árboles
Algoritmos y estructuras de datos

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

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”. También 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. También vimos
arboles binarios de búsqueda que facilita las búsquedas de alta velocidad y la
ordenación de los datos, además de una eficiente eliminación de los valores duplicados.

Bibliografía:
Cómo programar en C# (Deitel & Deitel, 2007)
http://aulavirtual.utel.edu.mx/lib/ebook_pearson.php?id_ebook_pearson=158

Recorrido árbol (Instituto Tecnológico de Tijuana, s/f).


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

6
Unidad 4: Árboles
Algoritmos y estructuras de datos

-SirMiracle (4 jun 2012) Árboles Binarios de Búsqueda. Obtenido de YouTube:


https://www.youtube.com/watch?v=qzSHM4N5yDo

-Universitat Politécnica de Valencia- UPV (21 sept 2011) El Árbol Binario de Búsqueda
II UPV. Obtenido de YouTube:
https://www.youtube.com/watch?v=mTMrszfrNtI

Você também pode gostar