14
 UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA ESTRUCTURAS DE DATOS 2013 1 Matías, Miguel Serapio  Tejerina Jesús Eduardo RESUMEN ABSTRACCIÓN: Proceso mental que permite concentrarse en lo fundamental y pasar por alto el detalle. En la informática la abstracción juega un papel muy importante, dado que facilita el análisis y el diseño, permite determinar las estructuras de los sistemas que se va a implementar. Y tener una mejor visión de su funcionamiento. Hay dos aspectos fundamentales de la abstracción: 1. Abstracción de procedimientos: una herramienta que permite extender las posibilidades de un lenguaje de programación, al agregar nuevas operaciones mediante procedimientos, funciones, subrutinas, métodos, etc. se tiene la posibilidad de dividir un programa en unidades funcionales. Esta clase de extensión es útil especialmente cuando los programas por desarrollar son grandes (en número de líneas) y es conveniente descomponerlos. Este tipo de abstracción combina los métodos de parametrización y especificación.  Abstracción por parametrización: se define en términos de parámetros formales; de esta manera la identidad del dato es irrelevante; pero la presencia, el tipo y el número son indispensables.  Abstracción por especificación: El objetivo de este tipo de abstracción es centrar la atención sobre "qué hace", y pasar a un segundo plano el "cómo lo hace". Una manera de hacer esta especificación es por medio de aserciones. La primera de ellas es la  precondi ción, que es el conjunto de condiciones necesarias y suficientes que aseguran la correcta ejecución del proceso; la otra aseveración es la  postcondi ción, donde se debe especificar los resultados que se obtienen después de la ejecución del proceso. Ejemplo: subrutina que or dena un vector de números; la ordenación se puede realizar de diferentes maneras lo que no es importante en este caso porque se está especificando lo que hace y no como lo hace. Descripción: Ordena el contenido de un vector de números Precondición: Se debe facilitar el vector de números y la cantidad de elementos que este vector contiene, debiendo ser esta un entero mayor o igual a cero. Postcondición: El vector de números es modificado de manera que se presenten ordenados de manera ascendente. Encabezado: Ordenar(ref TipoVector Datos, entero Cantidad) 2. Abstracción de datos: permite extender la base de los tipos predefinidos en estos lenguajes. permite incluir nuevos tipos de datos como así también las operaciones que se pueden realizar con estos. Y generar estructuras de datos de mayor complejidad. ESTRUCTURAS DE DATOS Se puede considerar una estructura de datos como un conjunto de variables, quizá de tipos distintos, que se relacionan entre sí y que se pueden operar como un todo, esto implica un conjunto de "celdas" en las que se puede almacenar los datos. El componente básico de la estructura de datos es la "celda", las estructuras de datos se implementan a través de los lenguajes y son un modelo que caracteriza y permite almacenar y utilizar una determinada organización de datos. TIPOS DE DATOS En general, cuando se define una variable como perteneciente a un tipo de datos se efectúa una abstracción que incluye la especificación de las celdas en que se puede almacenar, el conjunto de valores válidos que ésta celda pue de tomar y el conjunto de operaciones que se pueden efectuar. En esencia, un tipo de datos es una colección de valores.

Resumen Estructuras de Datos

Embed Size (px)

Citation preview

ESTRUCTURAS DE DATOS

UNIVERSIDAD NACIONAL DE JUJUYFACULTAD DE INGENIERIAESTRUCTURAS DE DATOS2013

RESUMENABSTRACCIN:Proceso mental que permite concentrarse en lo fundamental y pasar por alto el detalle. En la informtica la abstraccin juega un papel muy importante, dado que facilita el anlisis y el diseo, permite determinar las estructuras de los sistemas que se va a implementar. Y tener una mejor visin de su funcionamiento. Hay dos aspectos fundamentales de la abstraccin:1. Abstraccin de procedimientos: una herramienta que permite extender las posibilidades de un lenguaje de programacin, al agregar nuevas operaciones mediante procedimientos, funciones, subrutinas, mtodos, etc. se tiene la posibilidad de dividir un programa en unidades funcionales. Esta clase de extensin es til especialmente cuando los programas por desarrollar son grandes (en nmero de lneas) y es conveniente descomponerlos. Este tipo de abstraccin combina los mtodos de parametrizacin y especificacin. Abstraccin por parametrizacin: se define en trminos de parmetros formales; de esta manera la identidad del dato es irrelevante; pero la presencia, el tipo y el nmero son indispensables. Abstraccin por especificacin: El objetivo de este tipo de abstraccin es centrar la atencin sobre "qu hace", y pasar a un segundo plano el "cmo lo hace". Una manera de hacer esta especificacin es por medio de aserciones. La primera de ellas es la precondicin, que es el conjunto de condiciones necesarias y suficientes que aseguran la correcta ejecucin del proceso; la otra aseveracin es la postcondicin, donde se debe especificar los resultados que se obtienen despus de la ejecucin del proceso.Ejemplo: subrutina que ordena un vector de nmeros; la ordenacin se puede realizar de diferentes maneras lo que no es importante en este caso porque se est especificando lo que hace y no como lo hace.Descripcin: Ordena el contenido de un vector de nmeros Precondicin: Se debe facilitar el vector de nmeros y la cantidad de elementos que este vector contiene, debiendo ser esta un entero mayor o igual a cero. Postcondicin: El vector de nmeros es modificado de manera que se presenten ordenados de manera ascendente. Encabezado: Ordenar(ref TipoVector Datos, entero Cantidad)

2. Abstraccin de datos: permite extender la base de los tipos predefinidos en estos lenguajes. permite incluir nuevos tipos de datos como as tambin las operaciones que se pueden realizar con estos. Y generar estructuras de datos de mayor complejidad.ESTRUCTURAS DE DATOSSe puede considerar una estructura de datos como un conjunto de variables, quiz de tipos distintos, que se relacionan entre s y que se pueden operar como un todo, esto implica un conjunto de "celdas" en las que se puede almacenar los datos.El componente bsico de la estructura de datos es la "celda", las estructuras de datos se implementan a travs de los lenguajes y son un modelo que caracteriza y permite almacenar y utilizar una determinada organizacin de datos.TIPOS DE DATOSEn general, cuando se define una variable como perteneciente a un tipo de datos se efecta una abstraccin que incluye la especificacin de las celdas en que se puede almacenar, el conjunto de valores vlidos que sta celda puede tomar y el conjunto de operaciones que se pueden efectuar. En esencia, un tipo de datos es una coleccin de valores.TIPOS DE DATOS PREDEFINIDOSSon variables definidas como perteneciente a un tipo de dato que el lenguaje reconoce.TIPOS DE DATOS ESTUCTURADOScolecciones de ms de un elemento que pueden manipularse como si fuese una sola cosa. Algunos de estos tipos de datos estructurados son: Arreglos: coleccin de elementos finita y homognea. Y se tiene acceso a sus elementos por medio de un ndice. Registros: coleccin finita y heterognea de elementos. Para acceder a cada uno de sus elementos se utiliza un selector de campo o elemento.TIPOS DE DATOS ABSTRACTO Uno de los problemas que se presentan en los lenguajes de programacin es que muchos de los tipos de datos que requiere el desarrollador no se encuentran predefinidos ni tampoco estructurados, sin embargo se pueden definir y posteriormente implementar, mejorando y ampliando de esta manera las posibilidades que brinda el lenguaje.Un TDA - Tipo de Dato Abstracto es el resultado de aplicar un proceso de abstraccin de datos, reuniendo un Tipo de Dato y las operaciones que se pueden realizar con este tipo de dato. Los TDA son fundamentalmente un modelo, y las estructuras de datos son la implementacin de estos TDA en un lenguaje de programacin.TDA bsicos: El TDA Entero tiene como tipo el conjunto de nmeros enteros definido por las matemticas y como operaciones la suma, la resta, la multiplicacin y la divisin entera. El TDA Real tiene como tipo el conjunto de nmeros reales definido por las matemticas y como operaciones la suma, la resta, la multiplicacin la divisin. El TDA Carcter tiene como tipo el conjunto de caracteres definido por un alfabeto dado y como operaciones todos los operadores relacionales (, =, >=, hI. Si hD > hI y agrego en el subrbol derecho cambiando su altura entonces hD >> hI. Solamente cuando la altura derecha es mayor que la altura izquierda y se agrega un nodo en el subrbol derecho que cambia la altura del mismo se debe reorganizar el rbol.A continuacin se analiza la situacin semejante para cuando se agrega en el subrbol izquierdo. Si hI < hD y agrego en el subrbol izquierdo cambiando su altura entonces hI = hD. Si hI = hD y agrego en el subrbol izquierdo cambiando su altura entonces hI > hD. Si hI > hD y agrego en el subrbol izquierdo cambiando su altura entonces hI >> hD. Solamente cuando la altura izquierda es mayor que la altura derecha y se agrega un nodo en el subrbol izquierdo que cambia la altura del mismo se debe reorganizar el rbol.BALANCEDiferencia de altura entre subrbol derecho e izquierdo:Balance = hD hILos valores posibles de balance pueden ser: Balance = 1 implica que altura subrbol derecho mayor que altura subrbol izquierdo. Balance = 0 implica que las alturas de los dos subrboles son iguales. Balance = -1 implica que la altura subrbol izquierdo es mayor que altura subrbol derecho.Este valor se almacena en la estructura interna de cada nodo. Y as nos permite establecer cuando reorganizar el rbol. Despus de agregar o extraer un elemento.ROTACIONES: 4 tipos de rotacionesRotaciones simples derecha-derecha

se consideran el nodo "P" y el nodo "Q" que se encuentra a la derecha del nodo "P"; en el esquema el balance de "Q" es 0 y el balance de "P" es 1, se debe agregar un nodo por el subrbol derecho Q, se observa que cambian las alturas. Tenemos Q es 1 y P es 2 debindose reorganizar el rbol.La solucin es lograr que el nodo "Q" sea padre del nodo "P" sin perder el subrbol izquierdo del nodo "Q" que obviamente por el criterio de orden pasa a ser subrbol derecho de "P".Rotacin simple izquierda-izquierdaSe considera al nodo P y el nodo Q que se encuentra a la izquierda de P. el balance de P es -1 y Q es 0. Si se agrega un nodo por el subarbol izquierdo de Q se observa que cambian las alturas. Tenemos que Q es -1 y P es -2 debiendose reorganizar el arbol. La solucion es lograr que el nodo Q sea padre de P sin perder el subarbol derecho del nodo Q que por criterio de orden pasa a ser subarbol izquierdo de P.

ROTACIONES DOBLES:Derecha-izquierda: se quiere agregar un nodo en el subrbol izquierdo de Q que es subrbol derecho de P. Particularmente el caso que se quiera agregar un nodo por uno de los subarboles del nodo R que se encuentra a la izquierda de Q.

Se observa que tenemos una secuencia de balance (2,-1) debindose reorganizar el rbol.La solucin es lograr que el nodo "R" sea padre de los nodos "P" y "Q" sin perder los subrboles izquierdo y derecho del nodo "R" que por el criterio de orden el subrbol izquierdo de "R" pasa a ser subrbol derecho de "P" y el subrbol derecho de "R" pasa a ser subrbol izquierdo de "Q".

Izquierda-derecha: se debe agregar un nodo en el subrbol derecho de Q que es el subrbol izquierdo de P. particularmente el caso que se quiera agregar un nodo por uno de los subarboles del nodo R que se encuentra a la derecha de Q.

Se observa que tenemos una secuencia (-2,1) debindose reorganizar el rbol.La solucin es lograr que R sea padre de P y Q sin perder los subarboles izquierdo y derecho de R. que por criterio de orden el subrbol izquierdo de R pasa a ser subrbol derecho de Q, y el subrbol derecho de R pasa a ser subrbol izquierdo de P.

ARBOLES AVANZADOS (ARBOLES B) de orden o grado n.Consta de pginas que contienen las siguientes restricciones que deben cumplirse:1. Cada pgina debe tener (2*n) claves como mximo.2. Cada pgina puede tener n claves como mnimo excepto la pagina raz.3. Si una pgina tiene m claves, debe tener m+1 descendientes.4. Todas las pginas hojas se encuentran al mismo nivel.Agregar elementosPara agregar claves en un rbol avanzado se debe cuidar la sobreocupacin debindose desdoblar la pagina sobreocupada en 2 pginas.1. Se ordena las claves2. La clave central se sube a la pagina superior o padre, crendola si es necesario.Para mantener el orden se aplica la tcnica mayor de los menores.Ejemplo: 15, 3, 25, 100, 26, 45, 90, 10, 125, 200 rbol n=2

Agregamos 26: pg. Est llena se debe desdoblar, juntamos los elementos en orden, el elemento central pasa a la pg. Superior

Agregar 45agregamos 90

Agregar 10

Agregamos 125 : desdobla la pg. hoja 2.

Eliminacin de una clave de un rbol avanzado.Si la clave a eliminar se encuentra en una pgina hoja, no se presenta mayor problema. (solo se puede suprimir de paginas hojas).Si la clave se encuentra en una pgina interna, se aplica la tcnica de eliminacin por copia. Hay que tener la precaucin de que una pgina no quede subocupada al eliminar un elemento.Si una pgina queda subocupada se debe reunir esta pgina con una pgina adyacente y el elemento o clave que las vincula.Ejemplo:

Eliminar 200: esta en una pg. Hoja no se produce subocupacin.

Eliminar 90: no est en una pg. Hoja. Se aplica tcnica mayor de los menores y se procede al intercambio (en este caso 90 con 45). Al eliminar 90 se produce una subocupacin debindose unir las pg. 26, 45, 100, 125

13Matas, Miguel Serapio Tejerina Jess Eduardo