12
Modulo 4 Rodrigo Alfaro Web Something Especialista certificado FORTINET Especialista certificado CISCO E-Mail: [email protected] Estructura de datos

Modulo 4

Embed Size (px)

DESCRIPTION

Concepto de arbol binario

Citation preview

Page 1: Modulo 4

Modulo 4Rodrigo AlfaroWeb SomethingEspecialista certificado FORTINETEspecialista certificado CISCOE-Mail: [email protected]

Estructura de datos

Page 2: Modulo 4

Indice

- Definicion de Arbol Binario.- Metodos de recorrido.- Ejercicios.

Page 3: Modulo 4

Definicion de Arbol Binario

Es una estructura de datos ,en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho. No pueden tener mas de dos hijos (de ahi el nombre "binario").

Si algún hijo tiene como referencia a null, es decir que no almacena ningún dato, entonces este es llamado un nodo externo. En el caso contrario el hijo es llamado un nodo interno.

Ejemplos de arboles binarios

• arbol con raiz en el que cada nodo tiene como maximo dos hijos.• arbol binario lleno es un arbol en el que cada nodo tiene cero o dos hijos.• arbol binario perfecto es un arbol binario lleno en el que todas las hojas (vértices con cero hijos) estan a

la misma profundidad (distancia desde la raiz, también llamada altura). A veces un arbol binario perfecto es denominado arbol binario completo.

Page 4: Modulo 4

WHAT????

En espanol por favor!

Un arbol binario es una estructura de datos útil cuando se trata de hacer modelos de procesos en donde se requiere tomar decisiones en uno de dos sentidos en cada parte del proceso.

Ejemplo:

«Recorrer un arreglo en donde queremos encontrar todos los duplicados».

Esta situación es bastante útil en el manejo de las bases de datos, para evitar un problema que se llama redundancia.

Page 5: Modulo 4

Ejemplo de arbol binario

Ejemplo:

Recorrer un array para encontrar todos los datos duplicados.

Como hacerlo?

Una manera sencilla es recorrer todo el array y comparar con cada registro, el inconveniente se da cuando el array es N (numero pequeño o numero grande).

Como hacerlo con «arboles binarios»?

El primer número del array se coloca en la raiz del arbol con sus subarboles izquierdo y derecho vacios.

Donde cada elemento del array se compara con la información del nodo raiz y se crean los nuevos hijos con el siguiente criterio:

• Si el elemento del arreglo es igual que la información del nodo raiz, entonces notificar duplicidad.• Si el elemento del arreglo es menor que la información del nodo raiz, entonces se crea un hijo izquierdo.• Si el elemento del arreglo es mayor que la información del nodo raiz, entonces se crea un hijo derecho.

Page 6: Modulo 4

Ejemplo de arbol binario

Page 7: Modulo 4

Ejemplo de arbol binario

Algoritmo del recorrido del array:

leer numero buscado >> ntree=makeTree(n)while(hay numeros en el arreglo){ leeSiguienteNumero >> k p=q=tree; while(k!=info(p)&&q!=NULL){ p=q if(k<info(p)) q=left(p) else q=right(p) } if(k==info(p)) despliega<<" el numero es duplicado"; else if (k<info(p)) setLeft(p,k) else setRight(p,k) }

Page 8: Modulo 4

Metodos de recorrido

Preorden:

Se ejecutan las operaciones:• Visitar la raiz.• recorrer el subarbol izquierdo en preorden.• recorrer el subarbol derecho en preorden.

Entreorden:

Se ejecutan las operaciones:

• recorrer el subarbol izquierdo en entreorden.• Visitar la raiz.• recorrer el subarbol derecho en entreorden.

Postorden:

Se ejecutan las operaciones:

• recorrer el subarbol izquierdo en postorden.• recorrer el subarbol derecho en postorden.• Visitar la raiz.

Page 9: Modulo 4

Metodos de recorrido

En preorden: (14,4,3,9,7,5,15,18,16,17,20)

En entreorden: (3,4,5,7,9,14,15,16,17,18,20)

En postorden: (3,5,7,9,4,17,16,20,18,15,14)

Page 10: Modulo 4

Ejemplo

Archivo completo se adjuntara a la carpeta del curso.

Page 11: Modulo 4

Ejercicios

Crear un algoritmo y luego programar un recorrido sobre un array que sea capaz de mostrar los enteros duplicados y ordenarlos en forma descendente.

Utilizando un recorrido recursivo en entreorden, programe una funcion que sea capaz decalcular el número de veces que aparece el elemento X en el árbol A.

Page 12: Modulo 4

Gracias por su atencion.

Carpeta dropbox del curso:

https://www.dropbox.com/sh/762l5qfl5y67a5g/1NDJHIhUPV