Вы находитесь на странице: 1из 7

Nombre de la materia

Algoritmos y estructuras de datos

Nombre de la Licenciatura
Ing. En Sistemas Computacionales

Nombre del alumno


Antonio De Jesus Pascual Martinez

Matrícula
000575512

Nombre de la Tarea
Árboles

Unidad
4

Nombre del Profesor


José Martín Osuna Flores

Fecha
26-11-18
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 evaluació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.)

Desarrollo de la actividad:

Ejercicio :

Tu tarea consiste en modificar el proyecto (descargar aquí árboles) y con base a ello
realizar un programa de consola en C# que ejecute lo siguiente:

• Solicite al usuario el número a ingresar .

• Solicite los elementos a almacenar en el arreglo.

• Muestre el contenido y recorridos del árbol en pantalla.

3
Unidad 4: Árboles
Algoritmos y estructuras de datos

Arboles

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.

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;

4
Unidad 4: Árboles
Algoritmos y estructuras de datos

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

5
Unidad 4: Árboles
Algoritmos y estructuras de datos

}
}

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

6
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”. 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

Вам также может понравиться