SlideShare una empresa de Scribd logo
UNIVERSIDAD TECNICA DE MANABIPARALELO- EL CARMENFACULTAD:INGENIERIA EN SISTEMAS
FACILITADOR:ING: ROCIO MENDOZAFACULTAD:4TO SISTEMASESTUDIANTES:MERLY ZAMBRANO PALACIOS
MERCY ZAMBRANO VERAESTRUCTURA DE DATOS
TEMA:LISTAS ABIERTAS
LISTAS CIRCULARES
PILAS
COLAS
MEMORIA ESTATICA
MEMORIA DINAMICA
ARBOL
TIPOS DE NODOS
TIPOS DE RECORRIDOS
ARBOLES BINARIOS
BALANCE DE ARBOLESTRUCTURA DE DATOS
LISTAS ABIERTASLa 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.
INSERCIONInsertar un elemento en una lista vacía.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 LISTAEJEMPLO:
LISTAS CIRCULARESUna 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 ejemploCon un puntero fijo al mismo.Otra posible solución al problema anterior sería poner en cada lista circular, un elemento especial identificable como lugar de parada. Este elemento especial recibe el nombre de elemento de cabecera de la lista. Esto presenta la ventaja de que la lista circular no estará nunca vacía.Una lista circular con un puntero al último elemento, es equivalentemente a una lista lineal recta con dos punteros, una al principio y otra al final
+++4+00                    +4                      -1                        0Listas 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³-xyCada polinomio será representado como una lista en la que cada elemento representa un término nulo, como se indica a continuación:COEFICIENTESIGUIENTE
FUNCIONESLeer PolinomioLeer_ polinomio(&polP);Leer_ polinomio(&polQ);2.  InicializarInicializar(&polP);Inicializar(&polQ);3.  CompararComparar(&polP ,&polQ);Eliminar TérminosEliminar_Término(PolQ);5.  Escribir Polinomios Escribir_polinomio(polQ);
PILASUna pila cuenta con 2 operaciones imprescindibles, apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir mas de uso habitualCREAR: 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 contrariocolasLa particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.1.- Ejemplo de la cola1520918192.-vamos a insertar el 13 en la cola152091819133.-Sacamos al frente de la cola209181913
#ifndef COLA #define COLA // Define la cola template <class T> class Cola{        private:           struct Nodo{                T elemento;                struct Nodo* siguiente; // coloca el nodo en la segunda posición           }* primero;           struct Nodo* ultimo;            unsigned int elementos;       public:            Cola(){                    elementos = 0;             }            ~Cola(){                     while (elementos != 0) pop();              }            void push(const T& elem){             Nodo* aux = new Nodo;             aux->elemento = elem;            if (elementos == 0) primero = aux;            else ultimo->siguiente = aux;           ultimo = aux;           ++elementos; }           void pop(){           Nodo*   aux = primero;             primero = primero->siguiente;            delete aux;         --elementos; } T consultar() const{           return primero           ->elemento; } bool vacia() const{           return elementos == 0; } unsigned int size() const{          return elementos; } }; #endif COLAS
GRAFICO DE LISTAS ENLAZADAS
MEMORIA ESTATICAEs la forma más fácil de almacenarel contenido de una variableALMACENAMIENTOASIGNACIONPara que un objeto puedaser almacenado en memoria estática su tamaño ( numerode Bytes necesario para su almacenamiento)ha de ser conocido en tiempo de compilaciónLa asignaciocion dememoria puede hacerseen tiempo de compilacióny los objetos están vigentesdesde que comienza la ejecucion del programa hastaque termina
MANEJO DE MEMORIADINAMICAEs aquella que se reserva en tiempo de ejecución después de leer los datos y de conocer el tamaño exacto del problema a resolver. ALMACENAMIENTOa medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. ASIGNACIONPrimer ajuste
Mejor ajuste
Peor ajusteLIBERACION DE MEMORIADINAMICA202020201488146688884444EL espacio de memoria se va llenando con diferentes “representando colores”, también pueden destruirse alguno de ellos, dejando “huecos” en el espacio de memoria, cuándo ya no quede espacio disponible o cuando decida la memoria “compacta”, colocando todos los objetos que se están usando al principio y consolidando todos los huecos de memoria al final quedando una gran área de memoria disponible para la creación de objetos
MEMORIA ESTATICAVENTAJASMemoria fija, asignada en el momento de compilación.
Fácil y rápido de almacenar datos.
Es una sola casilla secuencial DESVENTAJASEn algunos casos se puede desperdiciar memoria.
En otros casos puede ser que los datos sean mas grandes que el espacio asignado
Desperdicia espacio liberado
No se puede modificar su tamaño en la ejecuciónMEMORIA DINAMICAVENTAJASNo hay desperdicio de memoria.
Asigna el espacio correspondiente
Modifica el tamaño
No es secuencial
Utiliza un puntero para la ejecuciónDESVENTAJASEs más difícil de programar
Cuando tenemos un archivo mas grande que el espacio en memoria quedan inutilizados los espacios pequeñosARBOLCONCEPTO
Un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados).EYT$OULL$$$OA$$GRAFICO DE ARBOL
DEFINICION DE NODOS:Un nodo, en informática, es un componente que forma parte de una red. En Internet, cada servidor constituye un nodo. Las computadoras que forman parte de una red también son nodos
TIPOS DE NODONodo: Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él. Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'. Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'. Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. En el ejemplo, ese nodo es el 'A'. Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'. Nodo rama: aunque esta definición apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categorías anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.
Existen otros conceptos que definen las características del árbol, en relación a su tamaño:Orden: es el número potencial de hijos que puede tener cada elemento de árbol. De este modo, diremos que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres, etc.
Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más de tres hijos.
Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.
Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también podemos hablar de altura de ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.GRAFICODE NODOS
Eliminación de entradas en un árbol B:Nodo interno (no hoja): Sustituirla por la siguiente (o la anterior) en el orden. Es decir, por la mayor de la rama izquierda, o la menor de la rama derecha.Nodo hoja: Eliminar la entrada de la hoja.          Casos de eliminación en nodo hoja. d = (p-1)/2 Nodo con más de d entradas: suprimir la entrada.Nodo con d entradas (el mínimo posible): reequilibrar el árbol.
3.4. Árboles B.456273822030356770Eliminación en nodo con d entradas:
Nodo hermano con más de d entradas: Se produce un proceso de préstamo de entradas:Se suprime la entrada, la entrada del padre pasa a la hoja de supresión y la vecina cede una entrada al nodo padre.Árbol B, p=5d= 239Ejemplo. Eliminar 67, 45.3.4. Árboles B.39627382203070Eliminación en nodo con d entradas:
Nodo hermano con más de d entradas: Se produce un proceso de préstamo de entradas:Se suprime la entrada, la entrada del padre pasa a la hoja de supresión y la vecina cede una entrada al nodo padre.Árbol B, p=5d= 235Ejemplo. Eliminar 67, 45.3.4. Árboles B.39627382203070Ningún hermano con más de d entradas: Con la hoja donde se hace la supresión (d-1 entradas) más una hoja hermana (d entradas) más la entrada del padre, se crea una nueva hoja con 2d entradas.Árbol B, p=5d= 235Ejemplo. Eliminar 39.3.4. Árboles B.627020307382Ningún hermano con más de d entradas: Con la hoja donde se hace la supresión (d-1 entradas) más una hoja hermana (d entradas) más la entrada del padre, se crea una nueva hoja con 2d entradas.Árbol B, p=5d= 235Ejemplo. Eliminar 39.
Ojo: Se suprime una entrada en el padre. Se debe repetir el proceso de eliminación en el nivel superior.3.4. Árboles B.ConclusionesEl orden de complejidad es proporcional a la altura del árbol, ~ logp/2 n en el peor caso.

Más contenido relacionado

PDF
Apuntes.13
DOCX
2. creación de tablas 2007
PDF
Estructuras dinámicas de Datos Lenguaje c
PPT
Listas enlazadas
PPTX
Estructuras 1
PDF
Apuntes 7
PDF
Manejo de estructuras de datos
DOCX
Algoritmo de listas simples completo
Apuntes.13
2. creación de tablas 2007
Estructuras dinámicas de Datos Lenguaje c
Listas enlazadas
Estructuras 1
Apuntes 7
Manejo de estructuras de datos
Algoritmo de listas simples completo

La actualidad más candente (18)

PPTX
Educación para el desarrollo humano apartar de
PPTX
Estructura de datos
PPT
Reconocimiento de las formulas y funciones más importantes de excel
PPT
Reconocimiento de las formulas y funciones más importantes de excel (2)
PPTX
PDF
121267067 archivos-fisicos-as400
PPT
ARBOLES MULTICAMINOS
PPTX
Estructura de Datos (LISTAS, COLAS, PILAS)
PPT
Estructura de datos.vrb
PPT
Grupal yanduntorres wilson_1_d
PPT
LISTAS ESPECIALES
DOCX
Creando base de datos
PPTX
Arreglos en pascal1
DOCX
Código ascii completo
DOCX
Correcion del examen de base de datosc
DOC
Sql comamdo
PPT
Sesion n°1 estructura de datos
Educación para el desarrollo humano apartar de
Estructura de datos
Reconocimiento de las formulas y funciones más importantes de excel
Reconocimiento de las formulas y funciones más importantes de excel (2)
121267067 archivos-fisicos-as400
ARBOLES MULTICAMINOS
Estructura de Datos (LISTAS, COLAS, PILAS)
Estructura de datos.vrb
Grupal yanduntorres wilson_1_d
LISTAS ESPECIALES
Creando base de datos
Arreglos en pascal1
Código ascii completo
Correcion del examen de base de datosc
Sql comamdo
Sesion n°1 estructura de datos
Publicidad

Destacado (18)

PDF
Acta mesa de diálogo en Juliaca
PDF
PROBLEMA Y DESARROLLO
PPTX
Entrevista seda juliaca
PPTX
Soluciones Constructivas OATEY. Ejemplos
PPTX
E.P.S. SEDA JULIACA S.A.
PPTX
Diapositivas sobre la entrevista realizada al Comandante de la PNP.
PDF
La contaminación ambiental en juliaca y política ambiental
PPTX
analisis se datos
PPTX
Tipos de contaminación los mas comunes
PPTX
Presentación1la ciudad de juliaca(el comercio)
PPTX
LA CONTAMINACIÓN EN LA CIUDAD DE JULIACA
PPTX
LA CONTAMINACIÓN EN JULIACA
PDF
Historia de juliaca
PPTX
cuidado y conservacion del medio ambiente
PPTX
El cuidado del medio ambiente diapositivas diana
PPT
Tipos de contaminación
PPT
Contaminacion ambiental
PPT
Diapositivas Medio Ambiente
Acta mesa de diálogo en Juliaca
PROBLEMA Y DESARROLLO
Entrevista seda juliaca
Soluciones Constructivas OATEY. Ejemplos
E.P.S. SEDA JULIACA S.A.
Diapositivas sobre la entrevista realizada al Comandante de la PNP.
La contaminación ambiental en juliaca y política ambiental
analisis se datos
Tipos de contaminación los mas comunes
Presentación1la ciudad de juliaca(el comercio)
LA CONTAMINACIÓN EN LA CIUDAD DE JULIACA
LA CONTAMINACIÓN EN JULIACA
Historia de juliaca
cuidado y conservacion del medio ambiente
El cuidado del medio ambiente diapositivas diana
Tipos de contaminación
Contaminacion ambiental
Diapositivas Medio Ambiente
Publicidad

Similar a Proyecto estructura (20)

PPTX
Arboles presentacion
PPTX
Examen De Estructura De Datos
PPTX
UNIVERSIDAD TECNICA DE MANAB{I
PPT
Apuntadores y listas
DOCX
Pilas y Colas
DOC
pila cola arboles
PPT
Algoritmos y Estructura de Datoa, aplicación colas
PPT
Presentacion De Cola
PPT
Presentacion De Cola
PPSX
Estructuras lineales y no lineales
PPTX
Estructura de Datos - Unidad III Estructuras Lineales
PPT
Clase De Colas
PPT
Clase De Colas
PPT
Estructura de datos.vrb
PPT
Estructura de datos.vrb
PPT
Estructura de datos.vrb
PPTX
Diapositiva de l estructura de datos
DOCX
Teoria de listas
PPT
Arboles presentacion
Examen De Estructura De Datos
UNIVERSIDAD TECNICA DE MANAB{I
Apuntadores y listas
Pilas y Colas
pila cola arboles
Algoritmos y Estructura de Datoa, aplicación colas
Presentacion De Cola
Presentacion De Cola
Estructuras lineales y no lineales
Estructura de Datos - Unidad III Estructuras Lineales
Clase De Colas
Clase De Colas
Estructura de datos.vrb
Estructura de datos.vrb
Estructura de datos.vrb
Diapositiva de l estructura de datos
Teoria de listas

Proyecto estructura

  • 1. UNIVERSIDAD TECNICA DE MANABIPARALELO- EL CARMENFACULTAD:INGENIERIA EN SISTEMAS
  • 2. FACILITADOR:ING: ROCIO MENDOZAFACULTAD:4TO SISTEMASESTUDIANTES:MERLY ZAMBRANO PALACIOS
  • 10. ARBOL
  • 15. LISTAS ABIERTASLa 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.
  • 16. INSERCIONInsertar un elemento en una lista vacía.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:
  • 17. INSERCION UN ELEMENTO EN LA ÚLTIMA POSICIÓN DE UNA LISTAEJEMPLO:
  • 18. LISTAS CIRCULARESUna 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 ejemploCon un puntero fijo al mismo.Otra posible solución al problema anterior sería poner en cada lista circular, un elemento especial identificable como lugar de parada. Este elemento especial recibe el nombre de elemento de cabecera de la lista. Esto presenta la ventaja de que la lista circular no estará nunca vacía.Una lista circular con un puntero al último elemento, es equivalentemente a una lista lineal recta con dos punteros, una al principio y otra al final
  • 19. +++4+00 +4 -1 0Listas 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³-xyCada polinomio será representado como una lista en la que cada elemento representa un término nulo, como se indica a continuación:COEFICIENTESIGUIENTE
  • 20. FUNCIONESLeer PolinomioLeer_ polinomio(&polP);Leer_ polinomio(&polQ);2. InicializarInicializar(&polP);Inicializar(&polQ);3. CompararComparar(&polP ,&polQ);Eliminar TérminosEliminar_Término(PolQ);5. Escribir Polinomios Escribir_polinomio(polQ);
  • 21. PILASUna pila cuenta con 2 operaciones imprescindibles, apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir mas de uso habitualCREAR: Se crea la pila vacía
  • 22. APILAR: Se añade un elemento a la pila (push)
  • 23. DESAPILAR: Se elimina el elemento frontal de la pila(pop)
  • 24. CIMA: Devuelve el elemento que esta en la cima de la pila(top o peek)
  • 25. VACIA: Devuelve cierto si la pila esta vacía o falso en caso contrariocolasLa particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.1.- Ejemplo de la cola1520918192.-vamos a insertar el 13 en la cola152091819133.-Sacamos al frente de la cola209181913
  • 26. #ifndef COLA #define COLA // Define la cola template <class T> class Cola{ private: struct Nodo{ T elemento; struct Nodo* siguiente; // coloca el nodo en la segunda posición }* primero; struct Nodo* ultimo; unsigned int elementos; public: Cola(){ elementos = 0; } ~Cola(){ while (elementos != 0) pop(); } void push(const T& elem){ Nodo* aux = new Nodo; aux->elemento = elem; if (elementos == 0) primero = aux; else ultimo->siguiente = aux; ultimo = aux; ++elementos; } void pop(){ Nodo* aux = primero; primero = primero->siguiente; delete aux; --elementos; } T consultar() const{ return primero ->elemento; } bool vacia() const{ return elementos == 0; } unsigned int size() const{ return elementos; } }; #endif COLAS
  • 27. GRAFICO DE LISTAS ENLAZADAS
  • 28. MEMORIA ESTATICAEs la forma más fácil de almacenarel contenido de una variableALMACENAMIENTOASIGNACIONPara que un objeto puedaser almacenado en memoria estática su tamaño ( numerode Bytes necesario para su almacenamiento)ha de ser conocido en tiempo de compilaciónLa asignaciocion dememoria puede hacerseen tiempo de compilacióny los objetos están vigentesdesde que comienza la ejecucion del programa hastaque termina
  • 29. MANEJO DE MEMORIADINAMICAEs aquella que se reserva en tiempo de ejecución después de leer los datos y de conocer el tamaño exacto del problema a resolver. ALMACENAMIENTOa medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. ASIGNACIONPrimer ajuste
  • 31. Peor ajusteLIBERACION DE MEMORIADINAMICA202020201488146688884444EL espacio de memoria se va llenando con diferentes “representando colores”, también pueden destruirse alguno de ellos, dejando “huecos” en el espacio de memoria, cuándo ya no quede espacio disponible o cuando decida la memoria “compacta”, colocando todos los objetos que se están usando al principio y consolidando todos los huecos de memoria al final quedando una gran área de memoria disponible para la creación de objetos
  • 32. MEMORIA ESTATICAVENTAJASMemoria fija, asignada en el momento de compilación.
  • 33. Fácil y rápido de almacenar datos.
  • 34. Es una sola casilla secuencial DESVENTAJASEn algunos casos se puede desperdiciar memoria.
  • 35. En otros casos puede ser que los datos sean mas grandes que el espacio asignado
  • 37. No se puede modificar su tamaño en la ejecuciónMEMORIA DINAMICAVENTAJASNo hay desperdicio de memoria.
  • 38. Asigna el espacio correspondiente
  • 41. Utiliza un puntero para la ejecuciónDESVENTAJASEs más difícil de programar
  • 42. Cuando tenemos un archivo mas grande que el espacio en memoria quedan inutilizados los espacios pequeñosARBOLCONCEPTO
  • 43. Un árbol es una estructura de datos ampliamente usada que imita la forma de un árbol (un conjunto de nodos conectados).EYT$OULL$$$OA$$GRAFICO DE ARBOL
  • 44. DEFINICION DE NODOS:Un nodo, en informática, es un componente que forma parte de una red. En Internet, cada servidor constituye un nodo. Las computadoras que forman parte de una red también son nodos
  • 45. TIPOS DE NODONodo: Un nodo es la unidad sobre la que se construye el árbol y puede tener cero o más nodos hijos conectados a él. Nodo hijo: cualquiera de los nodos apuntados por uno de los nodos del árbol. En el ejemplo, 'L' y 'M' son hijos de 'G'. Nodo padre: nodo que contiene un puntero al nodo actual. En el ejemplo, el nodo 'A' es padre de 'B', 'C' y 'D'. Nodo raíz: nodo que no tiene padre. Este es el nodo que usaremos para referirnos al árbol. En el ejemplo, ese nodo es el 'A'. Nodo hoja: nodo que no tiene hijos. En el ejemplo hay varios: 'F', 'H', 'I', 'K', 'L', 'M', 'N' y 'O'. Nodo rama: aunque esta definición apenas la usaremos, estos son los nodos que no pertenecen a ninguna de las dos categorías anteriores. En el ejemplo: 'B', 'C', 'D', 'E', 'G' y 'J'.
  • 46. Existen otros conceptos que definen las características del árbol, en relación a su tamaño:Orden: es el número potencial de hijos que puede tener cada elemento de árbol. De este modo, diremos que un árbol en el que cada nodo puede apuntar a otros dos es de orden dos, si puede apuntar a tres será de orden tres, etc.
  • 47. Grado: el número de hijos que tiene el elemento con más hijos dentro del árbol. En el árbol del ejemplo, el grado es tres, ya que tanto 'A' como 'D' tienen tres hijos, y no existen elementos con más de tres hijos.
  • 48. Nivel: se define para cada elemento del árbol como la distancia a la raíz, medida en nodos. El nivel de la raíz es cero y el de sus hijos uno. Así sucesivamente. En el ejemplo, el nodo 'D' tiene nivel 1, el nodo 'G' tiene nivel 2, y el nodo 'N', nivel 3.
  • 49. Altura: la altura de un árbol se define como el nivel del nodo de mayor nivel. Como cada nodo de un árbol puede considerarse a su vez como la raíz de un árbol, también podemos hablar de altura de ramas. El árbol del ejemplo tiene altura 3, la rama 'B' tiene altura 2, la rama 'G' tiene altura 1, la 'H' cero, etc.GRAFICODE NODOS
  • 50. Eliminación de entradas en un árbol B:Nodo interno (no hoja): Sustituirla por la siguiente (o la anterior) en el orden. Es decir, por la mayor de la rama izquierda, o la menor de la rama derecha.Nodo hoja: Eliminar la entrada de la hoja. Casos de eliminación en nodo hoja. d = (p-1)/2 Nodo con más de d entradas: suprimir la entrada.Nodo con d entradas (el mínimo posible): reequilibrar el árbol.
  • 52. Nodo hermano con más de d entradas: Se produce un proceso de préstamo de entradas:Se suprime la entrada, la entrada del padre pasa a la hoja de supresión y la vecina cede una entrada al nodo padre.Árbol B, p=5d= 239Ejemplo. Eliminar 67, 45.3.4. Árboles B.39627382203070Eliminación en nodo con d entradas:
  • 53. Nodo hermano con más de d entradas: Se produce un proceso de préstamo de entradas:Se suprime la entrada, la entrada del padre pasa a la hoja de supresión y la vecina cede una entrada al nodo padre.Árbol B, p=5d= 235Ejemplo. Eliminar 67, 45.3.4. Árboles B.39627382203070Ningún hermano con más de d entradas: Con la hoja donde se hace la supresión (d-1 entradas) más una hoja hermana (d entradas) más la entrada del padre, se crea una nueva hoja con 2d entradas.Árbol B, p=5d= 235Ejemplo. Eliminar 39.3.4. Árboles B.627020307382Ningún hermano con más de d entradas: Con la hoja donde se hace la supresión (d-1 entradas) más una hoja hermana (d entradas) más la entrada del padre, se crea una nueva hoja con 2d entradas.Árbol B, p=5d= 235Ejemplo. Eliminar 39.
  • 54. Ojo: Se suprime una entrada en el padre. Se debe repetir el proceso de eliminación en el nivel superior.3.4. Árboles B.ConclusionesEl orden de complejidad es proporcional a la altura del árbol, ~ logp/2 n en el peor caso.
  • 55. Normalmente, el orden p del árbol se ajusta para hacer que cada nodo esté en un bloque de disco, minimizando el número de operaciones de E/S.
  • 56. Representación en memoria: mejor usar AVL.
  • 57. Representación en disco: mejor usar árboles B.Recorrido Preordenconsiste en visitar el nodo actual (visitar puede ser simplemente mostrar la clave del nodo por pantalla), y después visitar el subárbol izquierdo y una vez visitado, visitar el subárbol derecho. Es un proceso recursivo por naturaleza.
  • 58. RECORRIDO INORDENse visita el subárbol izquierdo, el nodo actual, y después se visita el subárbol derecho.El recorrido en inorden, también llamado orden simétrico (aunque este nombre sólo cobra significado en los árboles binarios) consiste en recorrer en primer lugar A1, luego la raíz y luego cada uno de los hijos en orden simétrico.
  • 59. RECORRIDO POSTORDENse visitan primero el subárbol izquierdo, después el subárbol derecho, y por último el nodo actual.El recorrido en postorden, también llamado orden posterior consiste en recorrer e primer lugar cada uno de los hijos en orden posterior y por último la raíz.
  • 60. GRAFICO DE TIPOS DE RECORRIDOSHay tres formas de recorrido: Preorden, orden central y postorden.Preorden: Raiz, subárbol izquierdo y subárbol derecho.Orden central: Subarbol izquierdo, raiz, subárbol derecho.Postorden: Subarbol izquierdo, subárbol derecho, raiz.20Ejemplo:Preorden: 20 - 12 - 5 - 2 - 7 - 13 - 15 - 40 - 30 - 35 - 47Orden central: 2 - 5 - 7 - 12 - 13 - 15 - 20 - 30 - 35 - 40 - 47Postorden: 2 - 7 - 5 - 15 - 13 - 12 - 35 - 30 - 47 - 40 - 2012405134730721535
  • 61. ARBOLES BINARIOSUn árbol binario de búsqueda es un tipo particular de árbol binario que presenta una estructura de datos en forma de árbol usada en informática.
  • 62. INSERCIONLa inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho. De esta forma las inserciones se hacen en las hojas.
  • 64. BorradoBORRAR UN NODO SIN HIJOS Ó NODO HOJA:simplemente se borra y se establece a nulo el apuntador de su padre.
  • 65. BORRAR UN NODO CON UN SUBÁRBOL HIJO:se borra el nodo y se asigna su subárbol hijo como subárbol de su padre.
  • 66. Borrar un nodo con dos subárboles hijo
  • 67. CONCEPTOÁrbol AVL es un tipo especial de árbol binario ideado por los matemáticos rusos Adelson-Velskii y Landis. Fue el primer árbol de búsqueda binario auto-balanceable que se ideó
  • 68. OPERACIONESLas operaciones básicas de un árbol AVL implican generalmente el realizar los mismos algoritmos que serían realizados en un árbol binario de búsqueda desequilibrado, pero precedido o seguido por una o más de las llamadas "rotaciones AVL".
  • 69. RotacionesEl reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se produce el desequilibrio. Pueden darse dos casos: rotación simple o rotación doble; a su vez ambos casos pueden ser hacia la derecha o hacia la izquierda.
  • 70. ROTACIÓN SIMPLE A LA DERECHA.
  • 71. ROTACIÓN DOBLE A LA DERECHA.
  • 72. ROTACIÓN DOBLE A LA IZQUIERDA.
  • 73. BALANCE DE ARBOLLas operaciones de insertar y remover claves modifican la forma del árbol.La garantía del tiempo de acceso o (long n) ésta solamente valida a arboles balanceados.
  • 74. ROTACIONESNecesitamos operaciones para “recuperar” la forma balanceada después de inserciones y eliminaciones de elementos, aunque no cada operación causa una falta de balance en el árbol. Estas operaciones se llaman rotaciones.
  • 75. ROTACION SIMPLE A LA IZQUIERDAvtvutBAuAB
  • 76. ROTACION SIMPLE A LA DERECHAuuttAAvvBB
  • 77. ROTACION DOBLE IZQUIERDA - DERECHAtwvutuvwB2B1AAB2B1
  • 78. ROTACION DOBLE DERECHA - IZQUIERDAtwuvtvBuwA2A1BA2A1