SlideShare une entreprise Scribd logo
1  sur  31
UNIVERSIDAD TÉCNICA DE MANABÍExt. En El Carmen INTEGRANTES: ,[object Object]
Ferrìn Jenny TUTORA: ING. Roció Mendoza MATERIA  Estructura de Datos 4to. Semestre de  Ingeniería en Sistema
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
Á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
A B D C F E I G H QUÉ ES UN ÁRBOL? Un árbol es una estructura de datos formada por nodos los cuales están conectados por aristas. ,[object Object]
 La relación entre los elementos es de uno a muchos.nodos Aristas
A B D C F E I H G ,[object Object]
Raíz:  es el nodo que está al tope del árbol. Un árbol solo tiene una raíz.raíz
A B D C F E I H G 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 D C F E I H G ,[object Object],Ejemplo: C es padre de E y de F, D es padre de G, de H y de I. ,[object Object],padres hijos
[object Object]
Subárbol:  Cualquier nodo se puede considerar como la raíz de un subárbol.,[object Object]
LISTAS ABIERTAS La forma más simple de estructura dinámica es la lista abierta. En esta forma los nodos se organizan de modo que cada uno apunta al siguiente, y el último no apunta a nada, es decir, el puntero del nodo siguiente vale NULL.
INSERCION Este es, evidentemente, el caso más sencillo. Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además el puntero a la lista valdrá NULL:
INSERCION UN ELEMENTO EN LA ÚLTIMA POSICIÓN DE UNA LISTA EJEMPLO:
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.
+++4+ 00                     +4                       -1                         0 Listas Circular Como 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: COEFICIENTE SIGUIENTE
FUNCIONES Leer Polinomio Leer_ polinomio(&polP); Leer_ polinomio(&polQ); 2.  Inicializar Inicializar(&polP); Inicializar(&polQ); 3.  Comparar Comparar(&polP ,&polQ); Eliminar Términos Eliminar_Término(PolQ); 5.  Escribir Polinomios  Escribir_polinomio(polQ);
PILAS ,[object Object]
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,[object Object]
MEMORIA ESTATICA La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de ejecución es en memoria estática o permanente a lo largo de toda la ejecución del programa.  La asignación de memoria puede hacerse en tiempo de compilación y los objetos están vigentes desde que comienza la ejecución del programa hasta que termina.
EJEMPLO: liberación de Memoria Estática 4 20 20 20 20 14 8 14 8 8 6 8 6 8 4 8 4 4
MANEJO DE UNA MEMORIA ESTÀTICA VENTAJAS DESVENTAJAS En algunos casos se pueden desperdiciar memoria Es una memoria fija Fácil de almacenar datos En otros casos pueden que ser  que los datos sea grande el espacio asignado. Es una sola casilla Es  secuencial Desperdicia espacio liberado Desperdicia espacio liberado
MEMORIA DINAMICA La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con capacidad suficiente.  Peor ajuste: Asigna el hueco más grande. Una vez más, se debe de buscar en toda la tabla de huecos a menos que esté organizada por tamaño
EJEMPLO Liberación De Memoria Estática 20 20 14 20 14 14 8 8 8 4 2 4 6    46
MANEJO DE UNA MEMORIA ESTÀTICA VENTAJAS DESVENTAJAS En algunos casos se pueden desperdiciar memoria No es secuencial Utiliza un puntero En otros casos pueden que ser  que los datos sea grande el espacio asignado. Para ubicación de un registro Debe ser refrescada Desperdicia espacio liberado Una función que asigna a Malloc Desperdicia espacio liberado
TIPOS DE RRECORRIDO A B C F G D E Pre-order:   Procesar nodo Procesar árbol izquierdo Procesar árbol derecho         In-order: Procesar árbol izquierdo Procesar nodo Procesar árbol derecho         Post-order: Procesar árbol izquierdo Procesar árbol derecho Procesar nodo Pre-orden: A, B, D, E, C, F, G In-orden: D, B, E, A, F, C, G Post-orden: D, E, B, F, G, C, A
ÁRBOLES EQUILIBRADOS AVL. Un árbol AVL (llamado así por las iníciales de sus inventores: Adelson-Velskii y Landis) es un árbol binario de búsqueda en el que para cada nodo, las alturas de sus subárboles izquierdo y derecho no difieren en más de 1. Los AVL son también ABB, de modo que mantienen todas las operaciones que poseen éstos. Las nuevas operaciones son las de equilibrar el árbol, pero eso se hace como parte de las operaciones de insertado y borrado.

Contenu connexe

Tendances

Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en cJessica Suarez
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosMiguel Rodríguez
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarioselcapo2008
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento internoFernando Solis
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binarioMariela Cabezas
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sorttephyfree
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamientodeff000001
 

Tendances (20)

Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Programacion estructura de arboles en c
Programacion estructura de arboles en cProgramacion estructura de arboles en c
Programacion estructura de arboles en c
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafos
 
Estructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II RecursividadEstructura de Datos - Unidad II Recursividad
Estructura de Datos - Unidad II Recursividad
 
Unidad 6
Unidad 6Unidad 6
Unidad 6
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno3. algoritmos de ordenamiento interno
3. algoritmos de ordenamiento interno
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Metodos de ordenacion radix sort
Metodos de ordenacion radix sortMetodos de ordenacion radix sort
Metodos de ordenacion radix sort
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Algoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap SortAlgoritmo de ordenamiento: Heap Sort
Algoritmo de ordenamiento: Heap Sort
 
Arboles multicamino
Arboles  multicaminoArboles  multicamino
Arboles multicamino
 

Similaire à Estructuras Datos (20)

Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
Arboles
ArbolesArboles
Arboles
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Proyecto estructura
Proyecto estructuraProyecto estructura
Proyecto estructura
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Examen De Estructura De Datos
Examen De Estructura De DatosExamen De Estructura De Datos
Examen De Estructura De Datos
 
UNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{IUNIVERSIDAD TECNICA DE MANAB{I
UNIVERSIDAD TECNICA DE MANAB{I
 
04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
 
Arboles02
Arboles02Arboles02
Arboles02
 
Estructuras lineales y no lineales
Estructuras lineales y no linealesEstructuras lineales y no lineales
Estructuras lineales y no lineales
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
Trees dts
Trees dtsTrees dts
Trees dts
 
avl-trees.pdf
avl-trees.pdfavl-trees.pdf
avl-trees.pdf
 
Avl trees
Avl treesAvl trees
Avl trees
 
Árboles Binarios
Árboles BinariosÁrboles Binarios
Árboles Binarios
 
Sustentacion arboles
Sustentacion arbolesSustentacion arboles
Sustentacion arboles
 

Estructuras Datos

  • 1.
  • 2. Ferrìn Jenny TUTORA: ING. Roció Mendoza MATERIA Estructura de Datos 4to. Semestre de Ingeniería en Sistema
  • 3. 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
  • 4. Á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
  • 5.
  • 6. La relación entre los elementos es de uno a muchos.nodos Aristas
  • 7.
  • 8. Raíz: es el nodo que está al tope del árbol. Un árbol solo tiene una raíz.raíz
  • 9. A B D C F E I H G 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.
  • 10.
  • 11.
  • 12.
  • 13. LISTAS ABIERTAS La forma más simple de estructura dinámica es la lista abierta. En esta forma los nodos se organizan de modo que cada uno apunta al siguiente, y el último no apunta a nada, es decir, el puntero del nodo siguiente vale NULL.
  • 14. INSERCION Este es, evidentemente, el caso más sencillo. Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además el puntero a la lista valdrá NULL:
  • 15. INSERCION UN ELEMENTO EN LA ÚLTIMA POSICIÓN DE UNA LISTA EJEMPLO:
  • 16. 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.
  • 17. +++4+ 00 +4 -1 0 Listas Circular Como 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: COEFICIENTE SIGUIENTE
  • 18. FUNCIONES Leer Polinomio Leer_ polinomio(&polP); Leer_ polinomio(&polQ); 2. Inicializar Inicializar(&polP); Inicializar(&polQ); 3. Comparar Comparar(&polP ,&polQ); Eliminar Términos Eliminar_Término(PolQ); 5. Escribir Polinomios Escribir_polinomio(polQ);
  • 19.
  • 20. APILAR: Se añade un elemento a la pila (push)
  • 21. DESAPILAR: Se elimina el elemento frontal de la pila(pop)
  • 22. CIMA: Devuelve el elemento que esta en la cima de la pila(top o peek)
  • 23.
  • 24. MEMORIA ESTATICA La forma más fácil de almacenar el contenido de una variable en memoria en tiempo de ejecución es en memoria estática o permanente a lo largo de toda la ejecución del programa. La asignación de memoria puede hacerse en tiempo de compilación y los objetos están vigentes desde que comienza la ejecución del programa hasta que termina.
  • 25. EJEMPLO: liberación de Memoria Estática 4 20 20 20 20 14 8 14 8 8 6 8 6 8 4 8 4 4
  • 26. MANEJO DE UNA MEMORIA ESTÀTICA VENTAJAS DESVENTAJAS En algunos casos se pueden desperdiciar memoria Es una memoria fija Fácil de almacenar datos En otros casos pueden que ser que los datos sea grande el espacio asignado. Es una sola casilla Es secuencial Desperdicia espacio liberado Desperdicia espacio liberado
  • 27. MEMORIA DINAMICA La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. Mejor ajuste: Busca asignar el espacio más pequeño de los espacios con capacidad suficiente. Peor ajuste: Asigna el hueco más grande. Una vez más, se debe de buscar en toda la tabla de huecos a menos que esté organizada por tamaño
  • 28. EJEMPLO Liberación De Memoria Estática 20 20 14 20 14 14 8 8 8 4 2 4 6 46
  • 29. MANEJO DE UNA MEMORIA ESTÀTICA VENTAJAS DESVENTAJAS En algunos casos se pueden desperdiciar memoria No es secuencial Utiliza un puntero En otros casos pueden que ser que los datos sea grande el espacio asignado. Para ubicación de un registro Debe ser refrescada Desperdicia espacio liberado Una función que asigna a Malloc Desperdicia espacio liberado
  • 30. TIPOS DE RRECORRIDO A B C F G D E Pre-order: Procesar nodo Procesar árbol izquierdo Procesar árbol derecho In-order: Procesar árbol izquierdo Procesar nodo Procesar árbol derecho Post-order: Procesar árbol izquierdo Procesar árbol derecho Procesar nodo Pre-orden: A, B, D, E, C, F, G In-orden: D, B, E, A, F, C, G Post-orden: D, E, B, F, G, C, A
  • 31. ÁRBOLES EQUILIBRADOS AVL. Un árbol AVL (llamado así por las iníciales de sus inventores: Adelson-Velskii y Landis) es un árbol binario de búsqueda en el que para cada nodo, las alturas de sus subárboles izquierdo y derecho no difieren en más de 1. Los AVL son también ABB, de modo que mantienen todas las operaciones que poseen éstos. Las nuevas operaciones son las de equilibrar el árbol, pero eso se hace como parte de las operaciones de insertado y borrado.
  • 32. Ejemplos de arboles equilibrados ESTE ES UN ARBOL AVL NO ES ÀRBOL AVL
  • 33. Inserción externa por la derecha. Si se inserta nodo F, en la rama externa más larga del subárbol derecho: La relación de orden del árbol binario es: A<B<C<D<E<F
  • 34. Inserción interna por la derecha. Si se inserta nodo D, en la rama interna más larga del subárbol derecho. Con orden: A<B<C<D<E<F
  • 35. 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 de manera que siga equilibrado. Consideremos el esquema general de la siguiente figura, supongamos que la inserción ha provocado que el subárbol que cuelga de Ai pasa a tener una altura 2 unidades mayor que el subárbol que cuelga de Ad . ¿Qué operaciones son necesarias para que el nodo r tenga 2 subárboles que cumplan la propiedad de árboles AVL?.
  • 36. La inserción se ha realizado en el árbol A. La operación a realizar es la de una rotación simple a la derecha sobre el nodo r resultando el árbol mostrado en la siguiente figura.
  • 37. La inserción se ha realizado en el árbol B. (supongamos tiene raíz b, subárbol izquierdo B1 y subárbol derecho B2). La operación a realizar es la rotación doble izquierda-derecha la cual es equivalente a realizar una rotación simple a la izquierda sobre el nodo Ai y después una rotación simple a la derecha sobre el nodo r (por tanto, el árbol B queda dividido). El resultado se muestra en la figura siguiente.