Unidad v arboles ESTRUCTURA DE DATOS

40
Árboles

Transcript of Unidad v arboles ESTRUCTURA DE DATOS

Page 1: Unidad v arboles ESTRUCTURA DE DATOS

Árboles

Page 2: Unidad v arboles ESTRUCTURA DE DATOS

Acerca de arboles

Los árboles representan las estructuras de datos no lineales y dinámicas mas importantes en computación

Dinámicas porque la estructura puede cambiar durante la ejecución del programa

No lineales, puesto que a cada elemento del árbol puede seguirle varios elementos

Page 3: Unidad v arboles ESTRUCTURA DE DATOS

Estructuras estáticas y dinámicas

Estructuras estáticas Estructuras dinámicas

Arreglos Listas

Registros Árboles

Conjuntos

Page 4: Unidad v arboles ESTRUCTURA DE DATOS

Estructuras lineales y no lineales

Estructuras lineales Estructuras no lineales

Arreglos Árboles

Registros

Conjuntos

Pilas

Colas

Listas

Page 5: Unidad v arboles ESTRUCTURA DE DATOS

Árbol

Es una estructura jerárquica aplicada sobre una colección de elementos u objetos llamados nodos, uno de los cuales es conocido como raíz. Además se crean relaciones o parentesco entre nodos dando lugar a términos como: padre, hijo, hermano, antecesor, sucesor, ancestro, etc.

Page 6: Unidad v arboles ESTRUCTURA DE DATOS

Definición formal de Árbol

Es una estructura homogénea que es la concatenación de un elemento junto con un número finito de árboles disjuntos, llamados subárboles. Una forma particular de árbol es la estructura vacía.

Page 7: Unidad v arboles ESTRUCTURA DE DATOS

Aplicaciones de Árboles

Representar formulas matemáticas

Organizar adecuadamente información

Registrar la historia de un campeonato de tenis

Construir un árbol genealógico

Análisis de circuitos eléctricos

Enumerar los capítulos y secciones de un libro

Page 8: Unidad v arboles ESTRUCTURA DE DATOS

Representacion de arboles

Diagramas de Venn

AB C

D

E F

G

E

Page 9: Unidad v arboles ESTRUCTURA DE DATOS

Anidacion de paréntesis

(A(B(D(I,E,F(J,K)),C(G,H(L))))

Page 10: Unidad v arboles ESTRUCTURA DE DATOS

Notación decimal DEWEY

1.A, 1.1.B, 1.1.1.D, 1.1.1.1.I, 1.1.2.E,1.1.3.F

Page 11: Unidad v arboles ESTRUCTURA DE DATOS

Notacion indentada

A

B

D

L

G

J

I

E

Page 12: Unidad v arboles ESTRUCTURA DE DATOS

CARACTERISTICAS Y PROPIEDADES DE LOS

ÁRBOLES TODO ARBOL QUE NO ES VACIO, TIENE UN UNICO NODO RAIZ.

UN NODO X ES DESCENDIENTE DE UN NODO Y, SI EL NODO X ESTA APUNTADO POR EL NODO Y. EN ESTE CASO SE UTILIZA LA EXPRESION X ES HIJO DE Y.

UN NODO X ES ANTECESOR DIRECTO DE UN NODO Y, SI EL NODO X APUNTA AL NODO Y. EN ESTE CASO SE UTILIZA LA EXPRESIÓN X ES PADRE DE Y.

SE DICE QUE TODOS LOS NODOS QUE SON DESCENDIENTES DIRECTOS DE UN MISMO NODO PADRE, SON HERMANOS.

TODO NODO QUE NO TIENE RAMIFICACIONES(HIJOS),SE CONOCE COMO TERMINAL U HOJA.

Page 13: Unidad v arboles ESTRUCTURA DE DATOS

Continuacion…

TODO NODO QUE NO ES RAIZ , NI TERMINAL U HOJA SE CONOCE COMO “INTERIOR”.

GRADO.- ES EL NUMERO DE DESCENDIENTES DIRECTOS DE UN DETERMINADO NODO.

GRADO DEL ARBOL.- ES EL MAXIMO GRADO DE TODOS LOS NODOS DEL ARBOL.

NIVEL.- ES EL NUMERO DE ARCOS QUE DEBEN SER RECORRIDOS PARA LLEGAR A UN DETERMINADO NODO. POR DEFINICION LA RAIZ TIENE NIVEL 1.

ALTURA.- ES EL MAXIMO NUMERO DE NIVELES DE TODOS LOS NODOS DEL ARBOL.

Page 14: Unidad v arboles ESTRUCTURA DE DATOS

GRAFOEjemplo

Page 15: Unidad v arboles ESTRUCTURA DE DATOS

X

Y

Grafo ejemplo

Page 16: Unidad v arboles ESTRUCTURA DE DATOS

A

CB

D H

L

EF

KI

G

J

Grafo ejemplo

Page 17: Unidad v arboles ESTRUCTURA DE DATOS

LONGITUD DE CAMINO INTERNO

Es la suma de las longitudes de camino de todos los nodos del arbol.

1

*h

i

I

LCI n i

I = representa el nivel del arbol, h altura y ni el numero de nodos

en el nivel

EJEMPLO:

LCI= 1*1 + 2*2 + 5*3 +4*4 = 36

LA LCIM=LCI/n n Numero de nodos en el arbol

Page 18: Unidad v arboles ESTRUCTURA DE DATOS

LONGITUD DE CAMINO EXTERNO

ARBOL EXTENDIDO.- es aquel en el que el número de hijos de cada nodo es igual al grado del árbol. Si alguno de los nodos no cumple la condición entonces se debe incorporar al mismo nodos especiales.

Page 19: Unidad v arboles ESTRUCTURA DE DATOS

Ejemplo de Arbol extendido

A

CB

D H

L

E F

KI

G

J

1

2

*h

i

I

LCE ne i

Page 20: Unidad v arboles ESTRUCTURA DE DATOS

LONGITUD DE CAMINO EXTERNO

Se define como la suma de las longitudes de camino de todos los nodos especiales del arbol. Se calcula por medio de:

1

2

*h

i

I

LCE ne i

Page 21: Unidad v arboles ESTRUCTURA DE DATOS

Ejercicio(10 puntos)Dado el siguiente arbol

A

CB

F L MG

D

E IH J K

Calcular la longitud de camino interno y la

longitud de camino externo y la media de

cada uno de ellos

Page 22: Unidad v arboles ESTRUCTURA DE DATOS

Árboles binarios

Un árbol ordenado es aquel en el que las ramas están ordenados. Los de grado dos son de especial atención, porque representan estructuras importantes en computación y son conocidas como árboles binarios.

En un árbol binario solo puede tener a lo máximo dos subárboles y es necesario distinguir entre el subárbol izquierdo y el subárbol derecho

Page 23: Unidad v arboles ESTRUCTURA DE DATOS

Definición de Árbol Binario

Es una estructura homogénea que es la concatenación de un elemento de tipo T, llamada raíz, con dos árboles binarios disjuntos, llamados subárbol izquierdo y subárbol derecho de la raíz.

Una forma particular de árbol binario es la estructura vacía.

Page 24: Unidad v arboles ESTRUCTURA DE DATOS

Aplicaciones

En estructura para tomar decisiones en dos opciones.

Para representar un árbol genealógico

Para representar la historia de un campeonato de tenis.

Para representar expresiones algebraicas construidas con operadores binarios.

Page 25: Unidad v arboles ESTRUCTURA DE DATOS

Arbol binario de busqueda

27

14

50 77

47

7 3259

11

Page 26: Unidad v arboles ESTRUCTURA DE DATOS

Representación algebraica(A * B) + (C / D) ^ 3

+

.

C D

^

A /3

B

Page 27: Unidad v arboles ESTRUCTURA DE DATOS

Árbol GenealógicoOSVALDO CAIRO

BATTISTUTTI

MARIA BATTISTUTTI

VALIENTEJOSE CAIRO

SCANDALLO

MARIA VALIENTE

MARTIN

ANTONIO CAIRO

GODOY

MARIA SCANDALLO

MISCORIA

ROBERTO

BATTISTUTTI

MAZZOTTI

Page 28: Unidad v arboles ESTRUCTURA DE DATOS

Arboles binarios

Distintos.-Cuando sus estructuras son diferentes

A

B

A

B

Page 29: Unidad v arboles ESTRUCTURA DE DATOS

Arboles binarios

Similares.-Cuando sus estructuras son idénticas, pero la informacion

de sus nodos son diferentes

A

B

X

Y

Page 30: Unidad v arboles ESTRUCTURA DE DATOS

A

B

Arboles binarios

Equivalentes.-Cuando son similares y ademas los nodos

contienen la misma información

A

B

A

B

Page 31: Unidad v arboles ESTRUCTURA DE DATOS

EJEMPLOA

B

D

C

A

X

N

L

A

B

D

C

A

B

D

C

A) B)

C)

D)

C A

C B

C D

A,B Y D

A D

Page 32: Unidad v arboles ESTRUCTURA DE DATOS

ARBOLES BINARIOS COMPLETOS

Es el árbol en el que todos sus nodos excepto los del último nivel, tienen dos hijos: el subarbol izquierdo y el subárbol derecho.

Formula para calcular el numero de nodos de un árbol binario completo de altura h

NUMERO DE NODOSABC = 2h – 1

Donde ABC significa árbol binario completo y h l altura del árbol

Page 33: Unidad v arboles ESTRUCTURA DE DATOS

Ejemplo de árbol binario completo

A

B

F M

D

E J

Page 34: Unidad v arboles ESTRUCTURA DE DATOS

Representación de árboles binarios en memoria

1.- Por medio de datos tipo puntero, conocido como variables dinámicas.

2.- Por medio de arreglos.

Los punteros es la forma mas natural para tratar este tipo de estructuras.

Los nodos del árbol binario serán representados como registros que contendrán como mínimo tres campos.

IZQ.- Campo donde se almacena a dirección del subárbol izquierdo.

INFO.- Campo donde se almacena la información del nodo.

DER.- Campo donde se almacena a dirección del subárbol derecho.

IZQ INFO DERT

Page 35: Unidad v arboles ESTRUCTURA DE DATOS

Definición de un árbol binario en lenguaje algorítmico.

Enlace = ^nodo

nodo = registro

izq: tipo enlace

info: tipo dato

der: tipo enlace

{fin de la definición}

Page 36: Unidad v arboles ESTRUCTURA DE DATOS

Ejemplo de aplicación de árbol binario

( * ) ( / ) 3.5A B C D

+

*

B 3.5

^

A /

C D

Page 37: Unidad v arboles ESTRUCTURA DE DATOS

Representación del árbol binario en Memoria

+

* ^

/A B 3.5

C D

Page 38: Unidad v arboles ESTRUCTURA DE DATOS

RECORRIDOS EN ÁRBOLES BINARIOS

Una de las operaciones mas importantes en una árbol binario, es el recorrido de los mismos. Recorrer un árbol significa visitar los nodos del árbol en forma sistemática, de forma que todos los nodos del mismo sean visitados una sola vez.

Existen 3 formas de hacer el recorrido y son:

1.- PREORDEN

Visitar la raíz

Recorrer el subárbol izquierdo

Recorrer el subárbol derecho

Page 39: Unidad v arboles ESTRUCTURA DE DATOS

Continuacion…2.- INORDEN

Recorrer el subarbol izquierdo

Visitar la raiz

Recorrer el subarbol derecho

3.- POSTORDEN

Recorrer el subarbol izquierdo

Recorrer el subarbol derecho

Visitar la raiz

Page 40: Unidad v arboles ESTRUCTURA DE DATOS

Tarea(10 puntos)

Realizar un resumen sobre el tema “Árboles binarios de búsqueda”

Aspectos:

1.- Definición

2.- Búsqueda

3.- Inserción en un árbol binario de búsqueda

4.-Borrado en un árbol binario de búsqueda

5.- Manejar conceptos y algoritmos para cada tema.