31
UNIVERSIDAD TÉCNICA DE MANABÍ Ext. En El Carmen INTEGRANTES: Mite Sandra Ferrìn Jenny TUTORA: ING. Roció Mendoza MATERIA Estructura de Datos 4to. Semestre de Ingeniería en Sistema

Arboles presentacion

  • Upload
    jenny

  • View
    3.272

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arboles presentacion

UNIVERSIDAD TÉCNICA DE MANABÍ

Ext. En El Carmen

INTEGRANTES:

Mite SandraFerrìn Jenny

TUTORA:ING. Roció Mendoza

MATERIA Estructura de Datos

4to. Semestre de Ingeniería en Sistema

Page 2: Arboles presentacion

TEMAS

*Arboles Binarios*listas Abiertas y Cerradas

- Inserción- Recorrido- Eliminación

*Pilas - Concepto- Inserción- Recorrido- Eliminación

* Colas- Inserción- Recorrido- Eliminación

*Manejo de Memoria Estática* Manejo de Memoria Dinámica* Arboles Definicial * tipos de Recorrido

-Orden - In-Orden- Post-Orden

* Que son Arboles AVL* Arboles Equilibrados AVL

Page 3: Arboles presentacion

Árboles binarios

Un árbol binario en un árbol en

el cual cada nodo puede tener

como máximo dos hijos.

Recursivamente un árbol

binario puede definirse como:

un árbol vacío, o un nodo raíz

con un subárbol izquierdo y un

subárbol derecho.

Raíz

Sub árbol Izquierdo

Sub árbol Derecho

Page 4: Arboles presentacion

Un árbol es una estructura de datos formada por nodos los cuales están conectados por aristas.

Es una estructura de datos jerárquica

La relación entre los elementos es de uno a muchos.

A

B C D

E FG H I

nodos

Aristas

Page 5: Arboles presentacion

•Un árbol puede estar vacío; es decir no contener ningún nodo.

• Raíz: es el nodo que está al tope del árbol. Un árbol

solo tiene una raíz.

A

B C D

E FG H I

raíz

Page 6: Arboles presentacion

Conceptos Básicos

Un conjunto de nodos y aristas se define como un árbol y solo si existe un único camino desde la raíz hasta cada uno de sus nodos.

A

B C D

E FG H I

Page 7: Arboles presentacion

•Padre: En un árbol toda rama va de un nodo n1 a unnodo n2, se dice que n1 es padre de n2.

Ejemplo: C es padre de E y de F, D es padre de G, de Hy de I.

• Hijo: todo nodo puede tener mas de una arista que lolleva a otro nodo por debajo de él. Estos nodos que seencuentran por debajo de un nodo dado se llamanhijos. Ejemplo: E es hijo de C, B es hijo de A, H es hijode D

A

B C D

E FG H I

padres

hijos

Page 8: Arboles presentacion

•Hojas: son aquellos nodos que no tienen hijos. En unarbol solo puede haber una raíz pero pueden habermuchas hojas. Ejemplo: B,E,F,G,H,I son hojas.

• Subárbol: Cualquier nodo se puede considerar comola raíz de un subárbol.

Page 9: Arboles presentacion

•Nivel: el nivel de un nodo es el numero degeneraciones que hay desde la raíz hasta él.

El nivel de la raíz es cero.

• Profundidad o altura: es la longitud del camino maslargo desde la raíz hasta una hoja.

La profundidad de este árbol es 2. La raíz tieneprofundidad 0.

A

B C D

E FG H I

Nivel 0

Nivel 1

Nivel 2

Page 10: Arboles presentacion

LISTAS ABIERTAS

La forma más simple de estructura dinámica es lalista abierta. En esta forma los nodos se organizande modo que cada uno apunta al siguiente, y elúltimo no apunta a nada, es decir, el puntero delnodo siguiente vale NULL.

Page 11: Arboles presentacion

INSERCION

Este es, evidentemente, el caso más sencillo.Partiremos de que ya tenemos el nodo a insertary, por supuesto un puntero que apunte a él, ademásel puntero a la lista valdrá NULL:

Page 12: Arboles presentacion

INSERCION UN ELEMENTO EN LA ÚLTIMA POSICIÓN DE UNA LISTA

EJEMPLO:

Page 13: Arboles presentacion

LISTAS CIRCULARES

Una lista circular es una lineal, en la que el ultimo elemento enlaza con el

primero. Entonces es posible acceder a cualquier elemento de la lista

desde cualquier punto dado. Las operaciones sobre una lista circular

resultan mas sencillas, ya que se evitan casos especiales.

Cuando recorremos una lista circular, diremos que hemos llegado al final

de la misma, cuando nos encontramos de nuevo en el punto de partida;

suponiendo, desde luego, que el punto de partida se guarda de alguna

manera en la lista, por ejemplo

Con un puntero fijo al mismo.

Page 14: Arboles presentacion

+2

+ 3 1 0 + 1 3 0

+++4+

+ 0 4 0 - 0 0 1

00+4 -1 0

Listas CircularComo ejemplo de utilización de listas circulares, realizaremos la suma de ecuaciones algebraicas o polinómicas de las variables x, y, z.. Por ejemplo:

2x³y + 4xy³- y⁴ más 2xy³-xy

Cada polinomio será representado como una lista en la que cada elemento

representa un término nulo, como se indica a continuación:

± A B C SIGUIENTE

COEFICIENTE

Page 15: Arboles presentacion

FUNCIONES

1. Leer PolinomioLeer_ polinomio(&polP);

Leer_ polinomio(&polQ);

2. InicializarInicializar(&polP);

Inicializar(&polQ);

3. CompararComparar(&polP ,&polQ);

4. Eliminar TérminosEliminar_Término(PolQ);

5. Escribir Polinomios Escribir_polinomio(polQ);

Page 16: Arboles presentacion

PILASCREAR: Se crea la pila vacía

APILAR: Se añade un elemento

a la pila (push)

DESAPILAR: Se elimina el

elemento frontal de la pila(pop)

CIMA: Devuelve el elemento

que esta en la cima de la pila(top

o peek)

VACIA: Devuelve cierto si la

pila esta vacía o falso en caso

contrario

Page 17: Arboles presentacion

La particularidad de unaestructura de datos de cola esel hecho de que sólopodemos acceder al primer yal último elemento de laestructura. Así mismo, loselementos sólo se puedeneliminar por el principio ysólo se pueden añadir por elfinal de la cola.

Ejemplos de colas en la vidareal serían: personascomprando en unsupermercado, esperandopara entrar a ver un partidode béisbol, esperando en elcine para ver unapelícula, una pequeñapeluquería, etc. La ideaesencial es que son todoslíneas de espera.

15 20 9 18 19

15 20 9 18 19 13

20 9 18 19 13

1.- Ejemplo de la cola

2.-vamos a insertar el 13 en la cola

3.-Sacamos al frente de la cola

COLAS

Page 18: Arboles presentacion

MEMORIA ESTATICA

La forma más fácil de almacenar el contenido de una variable enmemoria en tiempo de ejecución es en memoria estática opermanente a lo largo de toda la ejecución del programa.

La asignación de memoria puede hacerse en tiempo de compilacióny los objetos están vigentes desde que comienza la ejecución delprograma hasta que termina.

Page 19: Arboles presentacion

EJEMPLO:

liberación de Memoria Estática

4

8

14

20

4

8

6

8

20

4

20

4

8

14

20

8

6

8

Page 20: Arboles presentacion

MANEJO DE UNA MEMORIA ESTÀTICA

VENTAJAS DESVENTAJAS

En algunos casos se pueden desperdiciar

memoria

Es una memoria fija

Fácil de almacenar datos

Desperdicia espacio liberado

En otros casos pueden que ser que los datos sea

grande el espacio asignado.

Es secuencial

Es una sola casilla

Desperdicia espacio liberado

Page 21: Arboles presentacion

MEMORIA DINAMICALa memoria dinámica es un espacio de almacenamiento que sesolicita en tiempo de ejecución. De esa manera, a medida que elproceso va necesitando espacio para más líneas, va solicitando másmemoria al sistema operativo para guardarlas.

Mejor ajuste: Busca asignar el espacio más pequeño de los espacioscon capacidad suficiente.

Peor ajuste: Asigna el hueco más grande. Una vez más, se debe debuscar en toda la tabla de huecos a menos que esté organizada portamaño

Page 22: Arboles presentacion

EJEMPLO

Liberación De Memoria Estática

6

8

14

20

4

20

4

8

14

20

2

8

14

46

Page 23: Arboles presentacion

MANEJO DE UNA MEMORIA ESTÀTICA

VENTAJAS DESVENTAJAS

En algunos casos se pueden desperdiciar

memoria

No es secuencial

Utiliza un puntero

Desperdicia espacio liberado

En otros casos pueden que ser que los datos sea

grande el espacio asignado.

Debe ser refrescada

Para ubicación de un registro

Desperdicia espacio liberado

Una función que asigna a Malloc

Page 24: Arboles presentacion

TIPOS DE RRECORRIDO

Pre-order: Procesar nodoProcesar árbol izquierdoProcesar árbol derecho

In-order:Procesar árbol izquierdoProcesar nodoProcesar árbol derecho

Post-order:Procesar árbol izquierdoProcesar árbol derechoProcesar nodo

A

B C

F GD E

Pre-orden: A, B, D, E, C, F, GIn-orden: D, B, E, A, F, C, G

Post-orden: D, E, B, F, G, C, A

Page 25: Arboles presentacion

ÁRBOLES EQUILIBRADOS AVL.

Un árbol AVL (llamado así por las iníciales de susinventores: Adelson-Velskii y Landis) es un árbolbinario de búsqueda en el que para cada nodo, lasalturas de sus subárboles izquierdo y derecho nodifieren en más de 1.

Los AVL son también ABB, de modo que mantienentodas las operaciones que poseen éstos. Las nuevasoperaciones son las de equilibrar el árbol, pero eso sehace como parte de las operaciones de insertado yborrado.

Page 26: Arboles presentacion

Ejemplos de arboles equilibrados

ESTE ES UN ARBOL AVL

NO ES ÀRBOL AVL

Page 27: Arboles presentacion

Inserción externa por la derecha.

Si se inserta nodo F, en la rama externa más larga delsubárbol derecho: La relación de orden del árbol binarioes: A<B<C<D<E<F

Page 28: Arboles presentacion

Inserción interna por la derecha.

Si se inserta nodo D, en la rama interna más largadel subárbol derecho.

Con orden: A<B<C<D<E<F

Page 29: Arboles presentacion

Veamos ahora la forma en que puede afectar una inserción en unárbol AVL y la forma en que deberíamos reorganizar los nodos demanera que siga equilibrado. Consideremos el esquema general de lasiguiente figura, supongamos que la inserción ha provocado que elsubárbol que cuelga de Ai pasa a tener una altura 2 unidades mayorque el subárbol que cuelga de Ad .

¿Qué operaciones son necesarias para que el nodo r tenga 2subárboles que cumplan la propiedad de árboles AVL?.

Page 30: Arboles presentacion

La inserción se ha realizado en el árbol A. La operación a realizar esla de una rotación simple a la derecha sobre el nodo r resultando el

árbol mostrado en la siguiente figura.

Page 31: Arboles presentacion

La inserción se ha realizado en el árbol B. (supongamos tiene raízb, subárbol izquierdo B1 y subárbol derecho B2). La operación arealizar es la rotación doble izquierda-derecha la cual es equivalente arealizar una rotación simple a la izquierda sobre el nodo Ai ydespués una rotación simple a la derecha sobre el nodo r (portanto, el árbol B queda dividido). El resultado se muestra en la figurasiguiente.