Você está na página 1de 13

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS
RESUMEN

2013

ABSTRACCIN: 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 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 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 DATOS En 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.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

TIPOS DE DATOS PREDEFINIDOS Son variables definidas como perteneciente a un tipo de dato que el lenguaje reconoce. TIPOS DE DATOS ESTUCTURADOS colecciones 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 (<, >, =, >=, <=,<>). El TDA Booleano tiene como tipo el conjunto de valores {verdadero, falso} y como operaciones el AND, OR y NOT definidos en el lgebra Booleana. DEFINICIN E IMPLEMENTACIN DE TDA PILA Y COLA TDA PILA: lista lineal que se almacena en una serie continua de celdas y se tiene acceso a esta por un extremo de la lista, o sea tiene un comportamiento LIFO (ultimo en entrar, primero en salir). Las operaciones que se pueden realizar son agregar, extraer y consultar. Solo se pueden realizar por ese extremo de la lista. IMPLEMENTACIN: dado que los elementos se almacenan en secuencia se va a utilizar como contenedor de los elementos un objeto de tipo ArrayLIst (arreglo dinmico), el cual tiene dos propiedades, una de ellas es count indica la capacidad de elementos presentes en el ArrayList. Y la otra propiedad es capacity indica el tamao del ArrayLIst. En base a estas dos propiedades podemos concluir que si count == capacity la pila est llena y si count<=0 la pila est vaca. Para agregar un elemento tenemos que verificar que la pila no est llena y para extraer la pila no tiene que estar vaca. En este caso no hace falta una variable que nos indique la posicin del ltimo elemento agregado, podemos utilizar count -1 para esto. TDA COLA: es una lista lineal que se almacena en una serie continua de celdas, en la que se tiene acceso a ellas por los extremos de la lista. En un extremo para agregar y en otro para sacar elementos. Presenta un comportamiento FIFO (primero en entrar, primero en salir). Las operaciones que se pueden realizar son agregar, extraer, consultar y estado (si est llena o vaca). IMPLEMENTACIN: para su implementacin se va a utilizar dos ndices, uno para indicar por donde vamos a extraer el prximo elemento y otro para indicar dnde podemos agregar el prximo elemento. Adems estos ndices tienen la capacidad de dar la vuelta por el contenedor, quiere decir que cuando llegan a la ltima posicin pueden volver a la primera. Esta implementacin se conoce como cola circular.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

Como contenedor se los elementos utilizamos un arreglo y dos variables para indicar por donde se extraen y se agregan los elementos. Dado que estos dos ndices se persiguen dando vuelta el contenedor, hace falta un mecanismo para saber cuando est llena o vaca la cola. El ndice denominado head indica por donde se extrae elementos, y el ndice tail indica por donde se agregan estos elementos. Tambin hay que implementar un mtodo que haga avanzar a los ndices a la siguiente posicin y si estn en la ltima posicin que avance a la primera posicin del arreglo. Al principio cuando el arreglo este vaco podemos fijar head==tail de manera que al agregar un elemento se lo ubica en la posicin indicada por tail y luego se avanza este ndice. Para retirar un elemento se toma de la posicin indicada por head y luego se avanza. Los ndices avanzaran persiguindose uno al otro. En algn momento va a ocurrir que solo queda un lugar disponible de manera que head indicara al que est listo para extraerse y tail el nico lugar disponible del arreglo.

Para agregar un elemento se lo pone en el nico lugar indicado por tail y luego se avanza este ndice. Cuando esto suceda tendremos que head==tail la cola estar llena. De manera que cuando head==tail la cola estar llena o vaca, tenemos dos alternativas para saber en qu situacin estamos. Utilizar una variable que cuente los elementos que se agregan y descuenten cuando se extrae. Desperdiciar ese ltimo lugar disponible y decir que est llena cuando el siguiente de tail es igual a head La primera implementacin se conoce como cola que prioriza la memoria dado que utiliza toda la memoria que le fue asignada. La segunda se conoce como cola que prioriza la velocidad dado que no necesita una variable que se incrementa o decrementa para la cuenta de elementos dentro de una cola. Consecuentemente es ms rpida. DEFINICIN E IMPLEMENTACIN DEL TDA LISTA LISTAS ENCADENADAS: en este tipo de lista el sucesor inmediato de un elemento no nesecesariamente se encuentra fsicamente a continuacin de este, se le puede suministrar memoria en forma dinmica, o sea a medida que se va necesitando. Consecuentemente cada elemento necesita un enlace para almacenar la direccin donde se encuentra el siguiente elemento. Para su implementacin se utiliza una estructura de datos conocida como nodo (que es un registro en los lenguajes no orientado a objetos) o un objeto (en lenguaje orientado a objeto). Que consta de dos partes, una de ellas es la informacin o dato y la otra enlaces.

Los nodos no presenta comportamientos particular.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

TDA LISTA Una lista es una estructura de datos dinmica, el nmero de elementos en la lista puede variar rpidamente en un proceso, aumentando por agregaciones o disminuyendo por extracciones. Las agregaciones se pueden realizar por cualquier punto de la lista; por la cabeza (inicio), por el final (cola), a partir o antes de un elemento determinado de la lista. Las extracciones tambin se pueden realizar en cualquier punto. Agregar al inicio: se dan 2 posibilidades Si la lista esta vaca, se pone la informacin en el nodo y este nodo pasa a ser el primer elemento de la lista.

Si hay elementos en la lista, entonces se pone la informacin en un nodo y hacer que este apunte al primer nodo de la lista cuya referencia esta almacenada en la variable head. Despus se cambia la referencia de head para que apunte al nuevo nodo.

Agregar al final: se pueden producir dos situaciones Lista vaca: se pone la informacin en el nodo y despus la referencia head pasa a apuntar a este nodo. Si no es una lista vaca, se recorre la lista hasta llegar al ltimo elemento este se determina porque el enlace del ltimo elemento es null. Para el recorrido de la lista se usa una referencia (skip) que comienza al principio de la lista y la recorre pasando de un nodo a otro hasta llegar al final. Se procede a enganchar el nodo al final de la lista.

Agregar al medio: primero se tiene que buscar donde se debe realizar la agregacin, esto se puede hacer usando una referencia (skip) para recorrer la lista y as buscar la posicin adecuada. Se debe tener la

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

precaucin de que la referencia (skip) se mantenga apuntando al nodo anterior del lugar donde se realizara la agregacin. Caso contrario sera imposible.

EXTRACCIONES: solo se van a poder realizar si la lista no est vaca. Extraer del inicio: es el nodo que apunta la referencia head, se procede a tomar el contenido de ese nodo y devolverlo. Extraer al final: se debe recorrer la lista usando una referencia (skip) hasta llegar al penltimo nodo, dado que este contiene el enlace al ltimo nodo. Despus se procede a desconectar el ltimo nodo.

La otra posibilidad es extraer un elemento de una posicin dada. La nica posibilidad de hacerlo es usando una referencia que apunte al nodo anterior del que se quiere extraer.

TDA ARBOL Un arbol es un conjunto de uno o mas nodos tales que hay uno especial llamado raiz y los restantes se dividen en n>=0 conjuntos disjuntos. Cada uno de estos conjuntos es un arbol y se lo conoce como subarboles. Si un arbol tiene subarboles a este se conoce como padre de ellos, y los restante nodos sucesores se llaman hijos. Los hijos de un nodo y los hijos de estos se denominan descendientes, los padres y abuelos se llaman ascendientes. Los nodos que tienen el mismo padre son hermanos y los nodos que no tienen descendientes se denominan hojas. Nivel de un nodo: es la distancia que tiene ese nodo al nodo raiz. El nodo raiz tiene nivel cero (N de enlaces).

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

Camino de un nodo: secuencia de nodos en la que cada nodo es adyacente al siguiente. Altura de un arbol: es le nivel de la hoja del camino mas largo desde la raiz mas uno. La altura de un arbol vacio es cero (N nodos). ARBOL BINARIO es un rbol cuyos nodos no pueden tener ms de dos subrboles. En un rbol binario, cada nodo puede tener cero, uno o dos hijos. Se conocen como el nodo de la izquierda y el nodo de la derecha; obviamente esos nodos pueden ser la raz de subrboles (binarios tambin) de manera recursiva. En cualquier nivel "n", un rbol binario puede contener de 1 a 2n nodos. rbol binario completo: Un rbol binario completo de profundidad n es un rbol en el que para cada nivel desde el 0 al n-1 tiene un conjunto lleno de nodos, y todos los nodos hoja a nivel n ocupan las posiciones ms a la izquierda del rbol. Un rbol lleno es un rbol binario que tiene el mximo nmero de entradas para su altura. Esto sucede cuando el ltimo nivel est lleno.

IMPLEMENTACIN RBOL BINARIO Para su implementacin se utiliza un elemento de tipo nodo que mantenga la informacin y los enlaces necesarios, en este caso un enlace al subrbol izquierdo y otro al subrbol derecho. RECORRIDO DE UN RBOL BINARIO Pre orden: se procesa raz, subrbol izquierdo, subrbol derecho. En orden: se procesa subrbol izquierdo, raz, subrbol derecho. Postorden: se procesa subrbol izquierdo, subrbol derecho, raz. RBOL BINARIO DE BSQUEDA (ABB) Un rbol binario de bsqueda es aquel en que, dado un nodo, todos los datos del subrbol izquierdo son menores que los datos de ese nodo, mientras que todos los datos del subrbol derecho son mayores (o iguales) que sus propios datos. Para agregar un elemento en u ABB primero se debe buscar el lugar donde el elemento debe ubicarse y luego crear un nodo que la contenga. La forma de buscar un lugar en un ABB es aplicando la tcnica de bsqueda binaria que compara el valor a buscar con el valor del nodo raz, si lo que busca es menor entonces se debe procesar el subrbol izquierdo, si lo que se busca es mayor o igual entonces se debe procesar el subrbol derecho.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

Extraer un elemento: lo primero que se tiene que tener en cuenta es que el elemento a extraer exista en el rbol. Puede presentarse tres situaciones: El elemento a extraer se encuentre en un nodo hoja. Lo nico que se hace es desconectar el nodo. El elemento a extraer se encuentra en un nodo que tiene un solo descendiente, en este caso se procede a desconectar el nodo que tiene el elemento a extraer, teniendo la precaucin de no perder el subrbol que este nodo tiene. De modo que se procede a conectar el subrbol con el padre del nodo que tiene el elemento a extraer. Extraer un elemento de un nodo que tiene 2 descendientes: en este caso se aplica la tcnica mayor de los menores (o menor de los mayores) que consiste en hallar el nodo cuyo elemento es el ms grande de todos los nodos cuyos valores son menores del que se quiere extraer. O menor de mayores que es el nodo cuyo valor es el ms chico de todos los nodos cuyos valores son mayores del que se quiere extraer. Una vez que se encuentra el nodo cuyo valor es el mayor de los menores se procede a ajustar los enlaces del rbol y finalmente desconectar el nodo. El ajuste de los enlaces se puede hacer de dos maneras: Eliminacin por copia: una vez que se encuentra el nodo mayor de los menores, se procede a realizar el intercambio de su contenido con el que se quiere extraer. El mayor de los menores siempre va a tener un solo descendiente (subrbol izquierdo). Una vez que se realizo el intercambio el nodo que contiene el valor a extraer va a tener un solo descendiente entonces se procede a conectar el subrbol del nodo cuyo elemento se va a extraer con el padre de este nodo. De esta manera se desconecta el nodo cuyo valor se quiere extraer. Este mtodo es muy lento porque realiza muchos pasos de cdigo pero deja un rbol racionalmente parejo (las ramas izquierda y derecha mantienen la forma del rbol original). Eliminacin por fusin: una vez que se encuentra el mayor de los menores lo que se hace es conectar el subrbol derecho del nodo cuyo elemento se va a extraer, como subrbol derecho del nodo mayor de los menores. Seguidamente el nodo cuyo valor a extraer va a tener un solo descendiente. Se procede a conectar su subrbol con el padre de este nodo (extraer). De esta manera se desconecta el nodo cuyo valor se quiere extraer. Esta tcnica es ms rpida debido a que usa menos variables y lneas de cdigo, pero deja un rbol con una de sus ramas cada vez ms larga. RBOL AVL Equilibrio: El factor de equilibrio de un rbol binario es la diferencia en altura entre los subrbols derecho e izquierdo. rbol perfectamente balanceado: un rbol es perfectamente balanceado si el nmero de nodos del subrbol izquierdo es igual al nmero de nodos del subrbol derecho. rbol perfectamente equilibrado: un rbol es perfectamente equilibrado si la altura del subrbol izquierdo es igual a la altura del subrbol derecho. rbol equilibrado: un rbol est equilibrado si la altura de sus subarboles difieren en no ms de uno en valor absoluto.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

rbol AVL: Un rbol AVL es aquel en el que para cada nodo las alturas de los subrboles derecho e izquierdo difieren en no ms de uno en valor absoluto. Es un TDA cuya implementacin se logra mediante un A.B.B. en el que se modifica su comportamiento para agregar y extraer elementos, asegurando que las diferencias de alturas de sus subarboles no sea mayor a uno en valor absoluto. Para asegurar la diferencia de altura entre los subarboles de cada nodo no sea mayor a uno en valor absoluto es necesario reorganizar la forma del rbol. Despus de agregar o extraer un nodo que provoque un cambio en las alturas de los subarboles. Cuando reorganizar el rbol AVL: Se defina hD como altura del subrbol derecho y hI como altura del subrbol izquierdo. Si hD < hI y agrego en el subrbol derecho cambiando su altura entonces hD = hI. Si hD = hI y agrego en el subrbol derecho cambiando su altura entonces hD > 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. BALANCE Diferencia de altura entre subrbol derecho e izquierdo: Balance = hD hI Los 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 rotaciones Rotaciones simples derecha-derecha

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

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-izquierda Se 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.

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

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.

10

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

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 elementos Para agregar claves en un rbol avanzado se debe cuidar la sobreocupacin debindose desdoblar la pagina sobreocupada en 2 pginas. 1. Se ordena las claves 2. 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

11

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS
agregamos 90

2013

Agregar 45

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.

12

Matas, Miguel Serapio Tejerina Jess Eduardo

UNIVERSIDAD NACIONAL DE JUJUY FACULTAD DE INGENIERIA

ESTRUCTURAS DE DATOS

2013

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

13

Matas, Miguel Serapio Tejerina Jess Eduardo

Você também pode gostar