Tamaño: px
Comenzar la demostración a partir de la página:

Download ""

Transcripción

1 ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES ÁRBOLES ROJO NEGRO. ÁRBOLES AVL. ÁRBOLES MULTIWAY. ÁRBOLES B. ÁRBOLES B+. ÁRBOLES HILVANADOS. ÁRBOLES GENERALES Y 1 ÁRBOLES GENERALES Y 2 DEFINICIONES Y REPRESENTACIONES UN BOSQUE ES UN GRAFO NO DIRIGIDO ACÍCLICO. UN ÁRBOL ES UNA ESTRUCTURA DE DATOS, QUE PUEDE DEFINIRSE DE FORMA RECURSIVA COMO: UNA ESTRUCTURA VACÍA O. UN ELEMENTO O CLAVE DE INFORMACIÓN (NODO) MÁS UN NÚMERO FINITO DE ESTRUCTURAS TIPO ÁRBOL, DISJUNTOS, LLAMADOS SUBÁRBOLES: SI DICHO NÚMERO DE ESTRUCTURAS ES INFERIOR O IGUAL A 2, SE TIENE UN ÁRBOL BINARIO. UN ÁRBOL ES UNA ESTRUCTURA NO SECUENCIAL. UN ÁRBOL ES UN TIPO DE GRAFO ACÍCLICO, CONEXO Y NO DIRIGIDO: ES UN GRAFO NO DIRIGIDO EN EL QUE EXISTE EXACTAMENTE UN CAMINO ENTRE TODO PAR DE NODOS. ESTA DEFINICIÓN PERMITE IMPLEMENTAR UN ÁRBOL Y SUS OPERACIONES EMPLEANDO LAS REPRESENTACIONES QUE SE UTILIZAN PARA LOS GRAFOS. ÁRBOLES GENERALES Y 3 DEFINICIONES Y REPRESENTACIONES LAS PRINCIPALES FORMAS DE REPRESENTACIÓN SON: MEDIANTE UN GRAFO. MEDIANTE UN DIAGRAMA ENCOLUMNADO: a b d c e f UNA ESTRUCTURA DE DATOS MUY UTILIZADA SON LOS ÁRBOLES : ESTOS ÁRBOLES TIENEN 0, 1 O 2 DESCENDIENTES COMO MÁXIMO. EL ÁRBOL DE LA FIGURA ES UN EJEMPLO VÁLIDO DE ÁRBOL BINARIO. ÁRBOLES GENERALES Y 4 DEFINICIONES Y REPRESENTACIONES NOMENCLATURA SOBRE ÁRBOLES ÁRBOLES GENERALES Y 5 ÁRBOLES GENERALES Y 6

2 NOMENCLATURA SOBRE ÁRBOLES NOMENCLATURA SOBRE ÁRBOLES RAÍZ: ES AQUEL ELEMENTO QUE NO TIENE ANTECESOR; EJEMPLO: a. RAMA: ES LA ARISTA ENTRE DOS NODOS. ANTECESOR: UN NODO X ES ANTECESOR DE UN NODO Y SI POR ALGUNA DE LAS RAMAS DE X SE PUEDE LLEGAR A Y. SUCESOR: UN NODO X ES SUCESOR DE UN NODO Y SI POR ALGUNA DE LAS RAMAS DE Y SE PUEDE LLEGAR A X. GRADO DE UN NODO: ES EL NÚMERO DE DESCENDIENTES DIRECTOS QUE TIENE. EJEMPLO: c TIENE GRADO 2, d TIENE GRADO 0, a TIENE GRADO 2. HOJA: ES UN NODO QUE NO TIENE DESCENDIENTES (GRADO 0). EJEMPLO: d. NODO INTERNO: ES AQUEL QUE TIENE AL MENOS UN DESCENDIENTE. NIVEL: ES EL NÚMERO DE RAMAS QUE HAY QUE RECORRER PARA LLEGAR DE LA RAÍZ A UN NODO. EJEMPLO: EL NIVEL DEL NODO a ES 1 (ES UN CONVENIO), EL NIVEL DEL NODO e ES 3. ALTURA: ES EL NIVEL MÁS ALTO DEL ÁRBOL. EN EL EJEMPLO LA ALTURA ES 3. ANCHURA: ES EL MAYOR VALOR DEL NÚMERO DE NODOS QUE HAY EN UN NIVEL. EN LA FIGURA LA ANCHURA ES 3. ÁRBOL BALANCEADO POR ALTURA: ES AQUEL EN DONDE TODOS LOS HIJOS O NODOS HOJA SE INTENTAN MANTENER A LA MISMA DISTANCIA DE LA RAÍZ. ÁRBOL BALANCEADO POR PESO: ES AQUEL EN DONDE LOS NODOS MÁS VISITADOS O UTILIZADOS SE MANTIENEN A POCA DISTANCIA DE LA RAÍZ. ÁRBOL RELLENO: SE DA CUANDO TODO NODO TIENE 2 HIJOS O BIEN ES HOJA. ÁRBOL BINARIO COMPLETO: ES UN ÁRBOL BINARIO RELLENO EN DÓNDE TODAS LAS HOJAS TIENEN LA MISMA PROFUNDIDAD. ÁRBOLES GENERALES Y 7 ÁRBOLES GENERALES Y 8 NOMENCLATURA SOBRE ÁRBOLES ACLARACIONES: SE HA DENOMINADO a A LA RAÍZ, PERO SE PUEDE OBSERVAR SEGÚN LA FIGURA QUE CUALQUIER NODO PODRÍA SER CONSIDERADO RAÍZ, BASTA CON GIRAR EL ÁRBOL. PODRÍA DETERMINARSE POR EJEMPLO QUE b FUERA LA RAÍZ Y a Y d LOS SUCESORES INMEDIATOS DE LA RAÍZ b. GENERALMENTE EN LAS IMPLEMENTACIONES SOBRE UN COMPUTADOR ES NECESARIA UNA JERARQUÍA, ES DECIR, QUE HAYA UNA ÚNICA RAÍZ. DECLARACIÓN Y REPRESENTACIÓN ÁRBOLES GENERALES Y 9 ÁRBOLES GENERALES Y 10 DECLARACIÓN Y REPRESENTACIÓN DECLARACIÓN Y REPRESENTACIÓN SE DEFINIRÁ EL ÁRBOL CON UNA CLAVE DE TIPO ENTERO (PUEDE SER CUALQUIER OTRO TIPO DE DATOS), Y DOS HIJOS: IZQUIERDO (izq) Y DERECHO (der). PARA REPRESENTAR LOS ENLACES CON LOS HIJOS SE UTILIZAN PUNTEROS. EL ÁRBOL VACÍO SE REPRESENTARÁ CON UN PUNTERO NULO. EN C UN ÁRBOL BINARIO PUEDE DECLARARSE DE LA SIGUIENTE MANERA: typedef struct tarbol int clave; struct tarbol *izq, *der; tarbol; ÁRBOLES GENERALES Y 11 ÁRBOLES GENERALES Y 12

3 DECLARACIÓN Y REPRESENTACIÓN DECLARACIÓN Y REPRESENTACIÓN UNA FORMA MÁS DETALLADA SERÍA: ESTRUCTURA TreeNode: template<class T> class TreeNode public: TreeNode(T e) : data(e), leftptr(null), rightptr(null) ; TreeNode(T e, TreeNode<T>* left, TreeNode<T>* right) : data(e), leftptr(left), rightptr(right) ; T data; TreeNode<T> *leftptr, *rightptr; ; ÁRBOLES GENERALES Y 13 ESTRUCTURA BinaryTree: template<class T> class BinaryTree public: BinaryTree(): root(null) ; BinaryTree(T rootvalue); BinaryTree(T rootvalue, const BinaryTree<T>& left, const BinaryTree<T>& right); BinaryTree<T>& operator= (const BinaryTree<T>& b); ~BinaryTree() Clear();; ÁRBOLES GENERALES Y 14 DECLARACIÓN Y REPRESENTACIÓN BinaryTree<T> Left() const; BinaryTree<T> Right() const; int IsEmpty() const return (root == NULL);; T& operator() () const; void Clear(); void Preorder(); void Inorder(); void Postorder(); protected: TreeNode<T>* root; ; DECLARACIÓN Y REPRESENTACIÓN LA REPRESENTACIÓN GRÁFICA ES LA SIGUIENTE: *leftptr data *rightptr ÁRBOLES GENERALES Y 15 ÁRBOLES GENERALES Y 16 DECLARACIÓN Y REPRESENTACIÓN ÁRBOLES GENERALES Y 17 ÁRBOLES GENERALES Y 18

4 SE CONSIDERAN DOS TIPOS DE RECORRIDO: RECORRIDO EN PROFUNDIDAD. RECORRIDO EN ANCHURA O A NIVEL. PUESTO QUE LOS ÁRBOLES NO SON SECUENCIALES COMO LAS LISTAS, HAY QUE BUSCAR ESTRATEGIAS ALTERNATIVAS PARA VISITAR TODOS LOS NODOS. RECORRIDOS EN PROFUNDIDAD RECORRIDO EN PREORDEN (PREORDER): CONSISTE 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. PARA LA FIGURA EJEMPLO LAS VISITAS SERÍAN EN EL ORDEN SIGUIENTE: a,b,d,c,e,f. ÁRBOLES GENERALES Y 19 ÁRBOLES GENERALES Y 20 LA CODIFICACIÓN EN C ES LA SIGUIENTE: void preorden(tarbol *a) if (a!= NULL) visitar(a); preorden(a->izq); preorden(a->der); RECORRIDO EN INORDEN U ORDEN CENTRAL (INORDER): SE VISITA EL SUBÁRBOL IZQUIERDO, EL NODO ACTUAL, Y DESPUÉS SE VISITA EL SUBÁRBOL DERECHO. EN EL EJEMPLO DE LA FIGURA LAS VISITAS SERÍAN EN ESTE ORDEN: b,d,a,e,c,f. LA CODIFICACIÓN EN C ES LA SIGUIENTE: void inorden(tarbol *a) if (a!= NULL) inorden(a->izq); visitar(a); inorden(a->der); ÁRBOLES GENERALES Y 21 ÁRBOLES GENERALES Y 22 RECORRIDO EN POSTORDEN (POSTORDER): SE VISITAN PRIMERO EL SUBÁRBOL IZQUIERDO, DESPUÉS EL SUBÁRBOL DERECHO, Y POR ÚLTIMO EL NODO ACTUAL. EN EL EJEMPLO DE LA FIGURA EL RECORRIDO QUEDARÍA ASÍ: d,b,e,f,c,a. LA CODIFICACIÓN EN C ES LA SIGUIENTE: void postorden(arbol *a) if (a!= NULL) postorden(a->izq); postorden(a->der); visitar(a); LA VENTAJA DEL RECORRIDO EN POSTORDEN ES QUE PERMITE BORRAR EL ÁRBOL DE FORMA CONSISTENTE: SI VISITAR SE TRADUCE POR BORRAR EL NODO ACTUAL, AL EJECUTAR ESTE RECORRIDO SE BORRARÁ EL ÁRBOL O SUBÁRBOL QUE SE PASA COMO PARÁMETRO. LA RAZÓN PARA HACER ESTO ES QUE NO SE DEBE BORRAR UN NODO Y DESPUÉS SUS SUBÁRBOLES, PORQUE AL BORRARLO SE PUEDEN PERDER LOS ENLACES, Y AUNQUE NO SE PERDIERAN SE ROMPE CON LA REGLA DE MANIPULAR UNA ESTRUCTURA DE DATOS INEXISTENTE. ÁRBOLES GENERALES Y 23 ÁRBOLES GENERALES Y 24

5 EJEMPLOS DE RECORRIDOS DE ÁRBOLES : ÁRBOL PARA EJEMPLO DE RECORRIDOS EN AMPLITUD: ÁRBOLES GENERALES Y 25 ÁRBOLES GENERALES Y 26 RECORRIDOS EN AMPLITUD CONSISTE EN IR VISITANDO EL ÁRBOL POR NIVELES. PRIMERO SE VISITAN LOS NODOS DE NIVEL 1 (LA RAÍZ), DESPUÉS LOS NODOS DE NIVEL 2, ASÍ HASTA QUE YA NO QUEDEN MÁS. SI SE HACE EL RECORRIDO EN AMPLITUD DEL ÁRBOL DE LA FIGURA EJEMPLO SE VISITARÍAN LOS NODOS EN ESTE ORDEN: a,b,c,d,e,f. EN ESTE CASO EL RECORRIDO NO SE REALIZARÁ DE FORMA RECURSIVA SINO ITERATIVA, UTILIZANDO UNA COLA COMO ESTRUCTURA DE DATOS AUXILIAR: EL PROCEDIMIENTO CONSISTE EN ENCOLAR (SI NO ESTÁN VACÍOS) LOS SUBÁRBOLES IZQUIERDO Y DERECHO DEL NODO EXTRAIDO DE LA COLA, Y SEGUIR DESENCOLANDO Y ENCOLANDO HASTA QUE LA COLA ESTÉ VACÍA. EN LA CODIFICACIÓN QUE VIENE A CONTINUACIÓN NO SE IMPLEMENTAN LAS OPERACIONES SOBRE COLAS. ÁRBOLES GENERALES Y 27 LA CODIFICACIÓN EN C ES LA SIGUIENTE: void amplitud(tarbol *a) tcola cola; /* LAS CLAVES DE LA COLA SERÁN DE TIPO ÁRBOL BINARIO */ arbol *aux; if (a!= NULL) CrearCola(cola); encolar(cola, a); while (!colavacia(cola)) desencolar(cola, aux); visitar(aux); if (aux->izq!= NULL) encolar(cola, aux->izq); if (aux->der!= NULL) encolar(cola, aux->der); ÁRBOLES GENERALES Y 28 CONSTRUCCIÓN DE UN ÁRBOL BINARIO CONSTRUCCIÓN DE UN ÁRBOL BINARIO A CONTINUACIÓN SE ESTUDIA UN MÉTODO PARA CREAR UN ÁRBOL BINARIO QUE NO TENGA CLAVES REPETIDAS. SE PARTE DE SU RECORRIDO EN PREORDEN E INORDEN, ALMACENADOS EN SENDOS ARRAYS. ÁRBOLES GENERALES Y 29 ÁRBOLES GENERALES Y 30

6 CONSTRUCCIÓN DE UN ÁRBOL BINARIO PARTIENDO DE LOS RECORRIDOS PREORDEN E INORDEN DEL ÁRBOL DE LA FIGURA EJEMPLO PUEDE DETERMINARSE: QUE LA RAÍZ ES EL PRIMER ELEMENTO DEL RECORRIDO EN PREORDEN. ESE ELEMENTO SE BUSCA EN EL ARRAY INORDEN. LOS ELEMENTOS EN EL ARRAY INORDEN ENTRE IZQ Y LA RAÍZ FORMAN EL SUBÁRBOL IZQUIERDO. LOS ELEMENTOS ENTRE DER Y LA RAÍZ FORMAN EL SUBÁRBOL DERECHO. POR TANTO SE TIENE EL ÁRBOL SIGUIENTE: CONSTRUCCIÓN DE UN ÁRBOL BINARIO A CONTINUACIÓN COMIENZA UN PROCESO RECURSIVO. SE PROCEDE A CREAR EL SUBÁRBOL IZQUIERDO, CUYO TAMAÑO ESTÁ LIMITADO POR LOS ÍNDICES IZQ Y DER. LA SIGUIENTE POSICIÓN EN EL RECORRIDO EN PREORDEN ES LA RAÍZ DE ESTE SUBÁRBOL. QUEDA LO SIGUIENTE: ÁRBOLES GENERALES Y 31 ÁRBOLES GENERALES Y 32 CONSTRUCCIÓN DE UN ÁRBOL BINARIO EL SUBÁRBOL b TIENE UN SUBÁRBOL DERECHO, QUE NO TIENE NINGÚN DESCENDIENTE, SEGÚN INDICAN LOS ÍNDICES IZQ Y DER. SE HA OBTENIDO EL SUBÁRBOL IZQUIERDO COMPLETO DE LA RAÍZ a, PUESTO QUE b NO TIENE SUBÁRBOL IZQUIERDO: DESPUÉS SEGUIRÁ CONSTRUYÉNDOSE EL SUBÁRBOL DERECHO A PARTIR DE LA RAÍZ a. ÁRBOLES GENERALES Y 33 ÁRBOLES GENERALES Y 34 UN ES AQUEL QUE ES: UNA ESTRUCTURA VACÍA, O. UN ELEMENTO O CLAVE DE INFORMACIÓN (NODO) MÁS UN NÚMERO FINITO -A LO SUMO DOS- DE ESTRUCTURAS TIPO ÁRBOL, DISJUNTOS, LLAMADOS SUBÁRBOLES QUE CUMPLEN LO SIGUIENTE: TODAS LAS CLAVES DEL SUBÁRBOL IZQUIERDO AL NODO SON MENORES QUE LA CLAVE DEL NODO. TODAS LAS CLAVES DEL SUBÁRBOL DERECHO AL NODO SON MAYORES QUE LA CLAVE DEL NODO. AMBOS SUBÁRBOLES SON ÁRBOLES DE BÚSQUEDA. UN EJEMPLO DE ES EL SIGUIENTE: ÁRBOLES GENERALES Y 35 ÁRBOLES GENERALES Y 36

7 AL DEFINIR EL TIPO DE DATOS QUE REPRESENTA LA CLAVE DE UN NODO DENTRO DE UN ES NECESARIO QUE EN DICHO TIPO SE PUEDA ESTABLECER UNA RELACIÓN DE ORDEN. POR EJEMPLO, SUPONER QUE EL TIPO DE DATOS DE LA CLAVE ES UN PUNTERO (DA IGUAL A LO QUE APUNTE). EN EL EJEMPLO DE LA FIGURA LAS CLAVES SON NÚMEROS ENTEROS: DADA LA RAÍZ 4, LAS CLAVES DEL SUBÁRBOL IZQUIERDO SON MENORES QUE 4, Y LAS CLAVES DEL SUBÁRBOL DERECHO SON MAYORES QUE 4. ESTO SE CUMPLE TAMBIÉN PARA TODOS LOS SUBÁRBOLES. SI SE HACE EL RECORRIDO DE ESTE ÁRBOL EN ORDEN CENTRAL SE OBTIENE UNA LISTA DE LOS NÚMEROS ORDENADA DE MENOR A MAYOR. UNA VENTAJA FUNDAMENTAL ES QUE SON EN GENERAL MUCHO MÁS RÁPIDOS PARA LOCALIZAR UN ELEMENTO QUE UNA LISTA ENLAZADA. SON MÁS RÁPIDOS PARA INSERTAR Y BORRAR ELEMENTOS. SI EL ÁRBOL ESTÁ PERFECTAMENTE EQUILIBRADO (LA DIFERENCIA ENTRE EL N DE NODOS DEL SUBÁRBOL IZQUIERDO Y EL N DE NODOS DEL SUBÁRBOL DERECHO ES A LO SUMO 1, PARA TODOS LOS NODOS): EL NÚMERO DE COMPARACIONES NECESARIAS PARA LOCALIZAR UNA CLAVE ES APROXIMADAMENTE LOG N EN EL PEOR CASO. EL ALGORITMO DE INSERCIÓN EN UN ÁRBOL BINARIO DE BÚSQUEDA TIENE LA VENTAJA (SOBRE LOS ARRAYS ORDENADOS, DONDE SE EMPLEARÍA BÚSQUEDA DICOTÓMICA PARA LOCALIZAR UN ELEMENTO) DE QUE NO NECESITA HACER UNA REUBICACIÓN DE LOS ELEMENTOS DE LA ESTRUCTURA PARA QUE ESTA SIGA ORDENADA DESPUÉS DE LA INSERCIÓN. ÁRBOLES GENERALES Y 37 ÁRBOLES GENERALES Y 38 DICHO ALGORITMO FUNCIONA AVANZANDO POR EL ÁRBOL ESCOGIENDO LA RAMA IZQUIERDA O DERECHA EN FUNCIÓN DE LA CLAVE QUE SE INSERTA Y LA CLAVE DEL NODO ACTUAL, HASTA ENCONTRAR SU UBICACIÓN: INSERTAR LA CLAVE 7 EN EL ÁRBOL DE LA FIGURA REQUIERE AVANZAR POR EL ÁRBOL HASTA LLEGAR A LA CLAVE 8, E INTRODUCIR LA NUEVA CLAVE EN EL SUBÁRBOL IZQUIERDO A 8. EL ALGORITMO DE BORRADO EN ÁRBOLES ES ALGO MÁS COMPLEJO, PERO MÁS EFICIENTE QUE EL DE BORRADO EN UN ARRAY ORDENADO. ÁRBOLES GENERALES Y 39 OPERACIONES BÁSICAS SOBRE ÁRBOLES DE BÚSQUEDA BÚSQUEDA SI EL ÁRBOL NO ES DE BÚSQUEDA, ES NECESARIO EMPLEAR UNO DE LOS RECORRIDOS ANTERIORES SOBRE EL ÁRBOL PARA LOCALIZARLO. EL RESULTADO ES IDÉNTICO AL DE UNA BÚSQUEDA SECUENCIAL. APROVECHANDO LAS PROPIEDADES DEL ÁRBOL DE BÚSQUEDA SE PUEDE ACELERAR LA LOCALIZACIÓN: HAY QUE DESCENDER A LO LARGO DEL ÁRBOL A IZQUIERDA O DERECHA DEPENDIENDO DEL ELEMENTO QUE SE BUSCA. LA CODIFICACIÓN EN C ES LA SIGUIENTE: boolean buscar(tarbol *a, int elem) if (a == NULL) return FALSE; else if (a->clave < elem) return buscar(a->der, elem); else if (a->clave > elem) return buscar(a->izq, elem); else return TRUE; ÁRBOLES GENERALES Y 40 INSERCIÓN LA INSERCIÓN RESULTA PRÁCTICAMENTE IDÉNTICA A LA BÚSQUEDA. CUANDO SE LLEGA A UN ÁRBOL VACÍO SE CREA EL NODO EN EL PUNTERO QUE SE PASA COMO PARÁMETRO POR REFERENCIA, DE ESTA MANERA LOS NUEVOS ENLACES MANTIENEN LA COHERENCIA. SI EL ELEMENTO A INSERTAR YA EXISTE ENTONCES NO SE HACE NADA. LA CODIFICACIÓN EN C ES LA SIGUIENTE: void insertar(tarbol **a, int elem) if (*a == NULL) *a = (arbol *) malloc(sizeof(arbol)); (*a)->clave = elem; (*a)->izq = (*a)->der = NULL; else if ((*a)->clave < elem) insertar(&(*a)->der, elem); else if ((*a)->clave > elem) insertar(&(*a)->izq, elem); ÁRBOLES GENERALES Y 41 ÁRBOLES GENERALES Y 42

8 BORRADO LA OPERACIÓN DE BORRADO RESULTA SER ALGO MÁS COMPLICADA. EL ÁRBOL DEBE SEGUIR SIENDO DE BÚSQUEDA TRAS EL BORRADO. UNA VEZ ENCONTRADO EL NODO A BORRAR PUEDEN DARSE TRES CASOS: EL NODO NO TIENE DESCENDIENTES: SIMPLEMENTE SE BORRA. EL NODO TIENE AL MENOS UN DESCENDIENTE POR UNA SOLA RAMA: SE BORRA DICHO NODO Y SU PRIMER DESCENDIENTE SE ASIGNA COMO HIJO DEL PADRE DEL NODO BORRADO: EN EL ÁRBOL DE LA FIGURA SE BORRA EL NODO CUYA CLAVE ES 1, RESULTANDO EL SIGUIENTE ÁRBOL: ÁRBOLES GENERALES Y 43 EL NODO TIENE AL MENOS UN DESCENDIENTE POR CADA RAMA: AL BORRAR DICHO NODO ES NECESARIO MANTENER LA COHERENCIA DE LOS ENLACES Y LA ESTRUCTURA DE UN : LA SOLUCIÓN CONSISTE EN SUSTITUIR LA INFORMACIÓN DEL NODO QUE SE BORRA POR LA DE UNA DE LAS HOJAS Y BORRAR A CONTINUACIÓN DICHA HOJA: DEBE SER LA HOJA QUE CONTENGA UNA DE ESTAS DOS CLAVES: LA MAYOR DE LAS CLAVES MENORES AL NODO QUE SE BORRA: SI SE QUIERE BORRAR EL NODO 4 DEL ÁRBOL DE LA FIGURA EJEMPLO SE SUSTITUIRÁ LA CLAVE 4 POR LA CLAVE 2. LA MENOR DE LAS CLAVES MAYORES AL NODO QUE SE BORRA: SI SE QUIERE BORRAR EL NODO 4 DEL ÁRBOL DE LA FIGURA EJEMPLO SE SUSTITUIRÁ LA CLAVE 4 POR LA CLAVE 5. ÁRBOLES GENERALES Y 44 EL ALGORITMO DE BORRADO QUE SE MUESTRA A CONTINUACIÓN REALIZA LA SUSTITUCIÓN POR LA MAYOR DE LAS CLAVES MENORES, PARA LO CUAL ES NECESARIO: DESCENDER PRIMERO A LA IZQUIERDA DEL NODO QUE SE VA A BORRAR. AVANZAR SIEMPRE A LA DERECHA HASTA ENCONTRAR UN NODO HOJA. A CONTINUACIÓN SE MUESTRA GRÁFICAMENTE EL PROCESO DE BORRAR EL NODO DE CLAVE 4: ÁRBOLES GENERALES Y 45 LA CODIFICACIÓN EN C ES LA SIGUIENTE, DONDE EL PROCEDIMIENTO SUSTITUIR ES EL QUE DESCIENDE POR EL ÁRBOL CUANDO SE DA EL CASO DEL NODO CON DESCENCIENTES POR AMBAS RAMAS: void borrar(tarbol **a, int elem) void sustituir(tarbol **a, tarbol **aux); tarbol *aux; if (*a == NULL) /* no existe la clave */ return; if ((*a)->clave < elem) borrar(&(*a)->der, elem); else if ((*a)->clave > elem) borrar(&(*a)->izq, elem); else if ((*a)->clave == elem) aux = *a; if ((*a)->izq == NULL) *a = (*a)->der; else if ((*a)->der == NULL) *a = (*a)->izq; else sustituir(&(*a)->izq, &aux); /* se sustituye por la mayor de las menores */ free(aux); ÁRBOLES GENERALES Y 46 void sustituir(tarbol **a, tarbol **aux) if ((*a)->der!= NULL) sustituir(&(*a)->der, aux); else (*aux)->clave = (*a)->clave; *aux = *a; *a = (*a)->izq; ÁRBOLES ÁRBOLES GENERALES Y 47 ÁRBOLES GENERALES Y 48

9 ÁRBOLES COMO UNA FORMA DE ELIMINAR LAS BÚSQUEDAS EXHAUSTIVAS DE LOS ÁRBOLES EXISTEN LOS ÁRBOLES ESTOS SON ÁRBOLES EN CUYOS NODOS SE PERMITE TENER MÁS DE UNA CLAVE AL MISMO TIEMPO. LOS ÁRBOLES TIENEN MÁXIMO 2 HIJOS (DERECHO E IZQUIERDO). SI SE LE PERMITE AL NODO TENER 2 VALORES, ESTE PODRÁ TENER 3 LIGAS A SUBÁRBOLES Y UNO CON 3 VALORES PODRÁ TENER 4 LIGAS. UN ÁRBOL CON ESTAS CARACTERÍSTICAS PUEDE CONTENER ENTONCES NODOS CON 2, 3 O 4 LIGAS, DE AHÍ QUE SE LES LLAMA ÁRBOLES EN LOS ÁRBOLES TODOS LOS SUBÁRBOLES TIENEN LA MISMA ALTURA Y ESTÁN SIEMPRE BALANCEADOS. ESTOS ÁRBOLES SON MUY ATRACTIVOS PARA EL ALMACENAMIENTO Y RECUPERACIÓN DE CLAVES, SIN EMBARGO SON UN TANTO COMPLICADOS DE IMPLEMENTAR. ÁRBOLES LOS ÁRBOLES 2-3 SON UN TIPO DE ÁRBOL BALANCEADO POR ALTURA (HEIGHT BALANCED) EN DONDE TODOS LOS NODOS NO- TERMINALES TIENEN 2 Ó 3 DECENDIENTES Y TODOS LOS NODOS HOJA TIENEN LA MISMA LONGITUD (PATH LENGTH) O DISTANCIA DESDE LA RAÍZ. EN ESTOS ÁRBOLES SÓLO LAS HOJAS CONTIENEN LA INFORMACIÓN (VALORES). LOS NODOS NO-TERMINAMES CONTIENEN INDICADORES QUE CONSTAN DE 2 VALORES DE LOS CUALES EL IZQUIERDO ES EL MÁXIMO DEL SUBÁRBOL IZQUIERDO Y EL SEGUNDO VALOR ES EL VALOR MÁXIMO DEL SUBÁRBOL CENTRAL. ÁRBOLES GENERALES Y 49 ÁRBOLES GENERALES Y 50 ÁRBOLES ÁRBOLES ROJO - NEGRO ÁRBOL ÁRBOLES GENERALES Y 51 ÁRBOLES GENERALES Y 52 ÁRBOLES ROJO - NEGRO LOS ÁRBOLES ROJO-NEGRO SON ÁRBOLES EN DONDE CADA NODO TIENE UN COLOR YA SEA ROJO O NEGRO. ESTOS ÁRBOLES REPRESENTAN UNA MANERA DE TRANSFORMAR UN ÁRBOL EN UNO BINARIO, LO QUE SE PUEDE LOGRAR UTILIZANDO LOS SIGUIENTES LINEAMIENTOS: TODO NODO 2 ES TRANSFORMADO A UN NODO NEGRO CON DECENDIENTES NEGROS. TODO NODO 3 ES TRANSFORMADO EN UN NODO NEGRO CON UN HIJO ROJO Y UNO NEGRO. UN NODO 4 ES TRANSFORMADO A UN NODO NEGRO CON DOS HIJOS ROJOS. ÁRBOLES ROJO - NEGRO ESTO SATISFACE LAS SIGUIENTES PROPIEDADES: TODOS LOS NODOS TIENEN UN COLOR, YA SEA ROJO O NEGRO. TODA HOJA ES NEGRA. AMBOS DESCENDIENTES DE UN NODO ROJO SON SIEMPRE NODOS NEGROS. CADA CAMINO DESDE CUALQUIER NODO HASTA UNA HOJA DESCENDIENTE CONTIENE EL MISMO NÚMERO DE NODOS NEGROS. NO HAY DOS NODOS ROJOS ADYACENTES EN UN CAMINO. ÁRBOLES GENERALES Y 53 ÁRBOLES GENERALES Y 54

10 ÁRBOLES ROJO - NEGRO UN EJEMPLO DE TRANSFORMACIÓN DE LOS NODOS '3' Y '4' EN ROJO NEGRO ES EL SIGUIENTE: ÁRBOLES ROJO - NEGRO AL NÚMERO DE NODOS NEGROS EN EL CAMINO DE UN NODO A UNA HOJA DESCENDIENTE SE LE CONOCE COMO LA ALTURA - NEGRA DEL NODO. LA ALTURA - NEGRA DE UN ÁRBOL ROJO - NEGRO ES LA ALTURA NEGRA DE SU RAÍZ. EJEMPLO DE TRANSFORMACIÓN DE UN ÁRBOL EN UN ÁRBOL ROJO NEGRO: ÁRBOLES GENERALES Y 55 ÁRBOLES GENERALES Y 56 ÁRBOLES AVL ÁRBOLES GENERALES Y 57 ÁRBOLES AVL LA ESTRUCTURA DE DATOS MÁS VIEJA Y MEJOR CONOCIDA PARA ÁRBOLES BALANCEADOS ES EL ÁRBOL AVL. SU PROPIEDAD ES QUE LA ALTURA DE LOS SUBÁRBOLES DE CADA NODO DIFIERE EN NO MÁS DE 1. PARA MANTENERLO BALANCEADO ES NECESARIO SABER LA ALTURA O LA DIFERENCIA EN ALTURAS DE TODOS LOS SUBÁRBOLES: SE DEBE TENER QUE GUARDAR INFORMACIÓN ADICIONAL EN CADA NODO: UN CONTADOR DE LA DIFERENCIA ENTRE LAS ALTURAS DE SUS DOS SUBÁRBOLES. LOS ÁRBOLES AVL FUERON NOMBRADOS POR SUS DESARROLLADORES ADELSON - VELSKII Y LANDIS. PROBABLEMENTE LA PRINCIPAL CARACTERÍSTICA DE LOS ÁRBOLES AVL ES SU EXELENTE TIEMPO DE EJECUCIÓN PARA LAS DIFERENTES OPERACIONES (BÚSQUEDAS, ALTAS Y BAJAS). EN LAS SIGUIENTES DOS FIGURAS LA PRIMERA ES UN ÁRBOL AVL Y LA SEGUNDA NO LO ES YA QUE LOS SUBÁRBOLES DEL NODO L DIFIEREN EN ALTURA POR MÁS DE 1. ÁRBOLES GENERALES Y 58 ÁRBOLES AVL UN EJEMPLO DE ARBOL AVL ES EL ÁRBOL (a), MIENTRAS QUE EL ÁRBOL (b) NO LO ES. ÁRBOLES MULTIWAY ÁRBOLES GENERALES Y 59 ÁRBOLES GENERALES Y 60

11 ÁRBOLES MULTIWAY ÁRBOLES MULTIWAY LOS ÁRBOLES SON UTILIZADOS PARA ALMACENAR INFORMACIÓN Y PARA PODER ACCEDERLA. CUANDO SE TRATA DE VOLÚMENES MUY GRANDES DE DATOS ALMACENADOS EN DISCO DURO, LAS ESTRUCTURAS Y ESTRATEGIAS DE BÚSQUEDA VISTAS ANTERIORMENTE RESULTAN INEFICIENTES, ESPECIALMENTE POR EL ALTO NÚMERO DE ACCESOS AL DISCO. PARA EVITAR TENER QUE HACER MUCHOS ACCESOS A DISCO ES RAZONABLE TENER VARIAS CLAVES EN CADA NODO DEL ÁRBOL. CUANDO LA INFORMACIÓN DE VARIOS NODOS SE JUNTA FORMANDO PEQUEÑOS GRUPOS A ESTOS SE LES LLAMA PÁGINAS. SI EN CADA ACCESO A DISCO UN PROCEDIMIENTO PUEDE LEER TODA UNA PÁGINA DE DATOS EN LUGAR DE LEERLOS DE UNO EN UNO: SE PUEDE DISMINUIR SIGNIFICATIVAMENTE EL NÚMERO DE ACCESOS NECESARIOS PARA ENCONTRAR UN DETERMINADO DATO. ÁRBOLES GENERALES Y 61 A LOS ÁRBOLES QUE MANEJAN EN CADA NODO UNA PÁGINA SE LES LLAMA ÁRBOLES MULTIWAY : CADA NODO PODRÁ TENER UN MÁXIMO DE M VALORES O CLAVES Y POR CONSIGIENTE M + 1 LIGAS A SUS DECENDIENTES. LA BÚSQUEDA DE UNA CLAVE SERÍA ANÁLOGA A LA DE LOS ÁRBOLES INSERTAR UN DATO EN UN NODO M (ES DECIR, QUE YA ESTÉ LLENO, CON M - 1 ELEMENTOS) IMPLICA DIVIDIR DICHO NODO EN 2 NODOS DE TIPO M/2 (PARA ELLO SE ASUME QUE ES NÚMERO PAR): EJEMPLO, UN NODO 4 (QUE TIENE 3 ELEMENTOS) SE DIVIDE EN 2 NODOS DE TIPO 2, AL IGUAL QUE EN EL CASO DE LOS ÁRBOLES ÁRBOLES GENERALES Y 62 ÁRBOLES MULTIWAY EL TAMAÑO DE UNA PÁGINA NO ES TOTALMENTE ARBITRARIO: A MAYOR TAMAÑO EL TIEMPO PARA PROCESARLA ES MAYOR. DEPENDE TAMBIÉN DE LA CANTIDAD DE MEMORIA PRINCIPAL DISPONIBLE. ÁRBOLES B ÁRBOLES GENERALES Y 63 ÁRBOLES GENERALES Y 64 ÁRBOLES B ÁRBOLES B ESTE TIPO DE ÁRBOLES FUE LLAMADO ÁRBOLES B POR R. BAYER Y E. McCREIGHT, LOS PRIMEROS EN CONSIDERAR EL USO DE ESTOS ÁRBOLES DE TIPO MULTIWAY. UN ÁRBOL B DE ORDEN w CUMPLE CON LAS SIGUIENTES PROPIEDADES: TODA PÁGINA, EXCEPTO LA RAÍZ CONTIENE AL MENOS w CLAVES. LA RAÍZ CONTIENE AL MENOS UNA CLAVE. LA RAÍZ TIENE AL MENOS 2 DESCENDIENTES. TODA PÁGINA CONTIENE A LO SUMO 2 w CLAVES. TODA PÁGINA EXCEPTO LAS HOJAS TIENE m + 1 DECENDIENTES, DÓNDE m ES EL NÚMERO DE CLAVES EN LA PÁGINA. LAS HOJAS NO TIENEN DECENDIENTES. TODAS LAS HOJAS ESTÁN EN EL MISMO NIVEL. CADA NODO PÁGINA ES REPRESENTADO POR UNA ESTRUCTURA QUE TIENE: UN ESPACIO PARA 2 w CLAVES Y 2 w + 1 APUNTADORES HACIA SUS DECENDIENTES. UN CAMPO CON UN VALOR QUE INDICA EL NÚMERO ACTUAL DE CLAVES EN LA PÁGINA. ESTE TIPO DE ÁRBOLES SÓLO SON ÚTILES CUANDO SON DE ORDEN MAYOR O IGUAL A 3. LAS OPERACIONES DE ALTAS Y BAJAS EN UN ÁRBOL B NO ALTERAN SU BALANCE. ÁRBOLES GENERALES Y 65 ÁRBOLES GENERALES Y 66

12 ÁRBOLES B ALTAS Y BAJAS EN UN ÁRBOL B EJEMPLO DE UNA ALTA EN UN ÁRBOL B: SE DA DE ALTA EL DATO 50 : ÁRBOLES B EJEMPLO DE UNA BAJA EN UN ÁRBOL B: ÁRBOLES GENERALES Y 67 ÁRBOLES GENERALES Y 68 ÁRBOLES B ÁRBOLES B EJEMPLO PASO A PASO DE LA BAJA DEL N 76 EN UN ÁRBOL B: ÁRBOLES GENERALES Y 69 ÁRBOLES GENERALES Y 70 ÁRBOLES B+ ÁRBOLES B+ UNA VARIACIÓN A LOS ÁRBOLES B CONSISTE EN QUE TODAS LAS CLAVES ESTÁN EN LAS HOJAS MIENTRAS QUE LOS NODOS NO TERMINALES CONTIENEN LOS ÍNDICES PARA LAS CLAVES. ADICIONALMENTE LAS HOJAS ESTÁN CONECTADAS SECUENCIALMENTE. EN ESTOS ÁRBOLES SE REQUIEREN 2 TIPOS DE ESTRUCTURAS: UNA PARA REPRESENTAR LOS NODOS NO TERMINALES: IGUAL A LA DE LOS ÁRBOLES B. OTRAPARA LAS HOJAS: TIENE UN APUNTADOR ADICIONAL PARA APUNTAR A LA SIGUIENTE HOJA. ESTOS ÁRBOLES SON ESPECIALMENTE ÚTILES PARA APLICACIONES QUE REQUIEREN AMBOS TIPOS DE ACCESO, SECUENCIAL YALEATORIO. ÁRBOLES GENERALES Y 71 ÁRBOLES GENERALES Y 72

13 ÁRBOLES B+ ÁRBOLES B+ PARA BUSCAR UN DATO EN ESTOS ÁRBOLES ES NECESARIO RECORRER UN CAMINO COMPLETO HASTA LA HOJA CORRESPONDIENTE SIGUIENDO LOS ÍNDICES: EL TIEMPO DE BÚSQUEDA ES SIEMPRE CONSTANTE. LAS BAJAS SON DIFERENTES: CUANDO SE ELIMINA UN DATO SE TIENEN QUE MOVER Y REAJUSTAR ELEMENTOS PARA EVITAR HUECOS Y PARA QUE LA INFORMACIÓN EN LOS NODOS NO - TERMINALES ASOCIADOS NO CAMBIE. SI UNA PÁGINA TIENE MENOS DE LA MITAD DE ELEMENTOS (UNDERFLOW) ES NECESARIO BALANCEAR EL ÁRBOL. PARA BALANCEAR SE REDISTRIBUYEN LOS DATOS O SE CONCATENAN PÁGINAS. ÁRBOLES GENERALES Y 73 ÁRBOLES GENERALES Y 74 ÁRBOLES HILVANADOS ÁRBOLES HILVANADOS AL ESTUDIAR LA REPRESENTACIÓN ENLAZADA DE UN ÁRBOL BINARIO ES FÁCIL OBSERVAR QUE EXISTEN MUCHOS ENLACES NULOS. DE HECHO, PUEDEN EXISTIR MÁS ENLACES NULOS QUE PUNTEROS CON VALORES REALES. PARA UN ÁRBOL CON N NODOS, EXISTEN N+1 ENLACES NULOS DE LOS 2N ENLACES EXISTENTES EN LA REPRESENTACIÓN (MÁS DE LA MITAD). COMO EL ESPACIO DE MEMORIA OCUPADO POR LOS ENLACES NULOS ES EL MISMO QUE EL OCUPADO POR LOS NO NULOS, PODRÍA RESULTAR CONVENIENTE UTILIZAR ESTOS ENLACES NULOS PARA ALMACENAR ALGUNA INFORMACIÓN DE INTERÉS PARA LA MANIPULACIÓN DEL ÁRBOL BINARIO. UNA FORMA DE UTILIZAR ESTOS ENLACES ES SUSTITUIRLOS POR PUNTEROS A OTROS NODOS DEL ÁRBOL. ÁRBOLES GENERALES Y 75 ÁRBOLES GENERALES Y 76 ÁRBOLES HILVANADOS ÁRBOLES HILVANADOS LOS ENLACES NULOS SITUADOS EN EL SUBÁRBOL DERECHO DE UN NODO SE SUELEN REUTILIZAR PARA APUNTAR AL SUCESOR DE ESE NODO EN UN DETERMINADO RECORRIDO DEL ÁRBOL, POR EJEMPLO INFIJO. LOS ENLACES NULOS EN SUBÁRBOLES IZQUIERDOS SE UTILIZAN PARA APUNTAR AL PREDECESOR DEL NODO EN EL MISMO TIPO DE RECORRIDO. SI PARA ALGÚN NODO NO EXISTE PREDECESOR (PORQUE ES EL PRIMERO DEL RECORRIDO) O SUCESOR (PORQUE ES EL ÚLTIMO), SE MANTIENE CON VALOR NULO EL ENLACE CORRESPONDIENTE. OTRA VENTAJA ES LA POSIBILIDAD DE UN ACCESO RÁPIDO AL SUCESOR (O AL PREDECESOR) DE UN NODO, QUE ES UNA OPERACIÓN FRECUENTEMENTE NECESARIA. ÁRBOLES GENERALES Y 77 ÁRBOLES GENERALES Y 78

14 ÁRBOLES HILVANADOS ÁRBOLES HILVANADOS PARA PODER MANEJAR CORRECTAMENTE TODA LA INFORMACIÓN DE LA QUE SE DISPONE EN LA REPRESENTACIÓN HILVANADA (CON HILOS) DEL ÁRBOL BINARIO, ES NECESARIO PODER DISTINGUIR ENTRE LO QUE SON PUNTEROS NORMALES, QUE REPRESENTAN LAS RELACIONES REALES ENTRE LOS NODOS, Y LO QUE SON HILOS. ESTO SE PUEDE HACER AÑADIENDO DOS CAMPOS BOOLEANOS A LA REPRESENTACIÓN DE LOS NODOS DEL ÁRBOL. ESTOS NUEVOS CAMPOS INDICARÁN SI LOS ENLACES IZQUIERDO Y DERECHO SON HILOS O NO. CON EL OBJETO DE NO MANTENER ABSOLUTAMENTE NINGÚN ENLACE NULO Y PARA FACILITAR EL RECORRIDO DEL ÁRBOL, SE SUELE AÑADIR A LA ESTRUCTURA UN NODO RAÍZ QUE NO CONTIENE INFORMACIÓN REAL. EL NODO RAÍZ QUE REPRESENTA EL ÁRBOL VACÍO TENDRÁ LA ESTRUCTURA QUE SE MUESTRA EN LA FIGURA: ÁRBOLES GENERALES Y 79 ÁRBOLES GENERALES Y 80 ÁRBOLES HILVANADOS EN GENERAL, LA UTILIZACIÓN DE ENLACES HILOS SIMPLIFICA LOS ALGORITMOS DE RECORRIDO DEL ÁRBOL, POR LO QUE SON RECOMENDABLES CUANDO EL RECORRIDO DEL ÁRBOL ES UNA OPERACIÓN FRECUENTE. DESDE EL PUNTO DE VISTA DE LA MANIPULACIÓN GENERAL DEL ÁRBOL HAY QUE TENER EN CUENTA QUE: LA INSERCIÓN DE NUEVOS NODOS DEBE MANTENER EN TODO MOMENTO ESTA ESTRUCTURA DE ENLACES CON LOS NODOS SUCESOR Y PREDECESOR. CADA VEZ QUE SE INSERTE UN NODO SE DEBERÁ COMPROBAR SI EXISTEN ENLACES DE ESTE TIPO QUE DEBAN SER MODIFICADOS O CREADOS, ADEMÁS DE LOS PUNTEROS NORMALES QUE RELACIONAN LOS NODOS DEL ÁRBOL. ÁRBOLES GENERALES Y 81

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006

DEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006 ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los

Más detalles

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores

Árboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,

Más detalles

árbol como un conjunto de nodos y líneas

árbol como un conjunto de nodos y líneas ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

En cualquier caso, tampoco es demasiado importante el significado de la B, si es que lo tiene, lo interesante realmente es el algoritmo. Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa

Más detalles

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15

Árboles balanceados. Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1. Thursday, April 30, 15 Árboles balanceados Alonso Ramírez Manzanares Computación y Algoritmos 28.04.2015 1 Árboles balanceados Los algoritmos en árboles binarios de búsqueda dan buenos resultados en el caso promedio pero el

Más detalles

Arboles Binarios de Búsqueda

Arboles Binarios de Búsqueda Arboles Binarios de Búsqueda Algoritmos y Estructuras de Datos Departamento de Electricidad y Electrónica (UPV/EHU) Arboles Binarios de Búsqueda p.1/52 Arboles Binarios Arbol binario: árbol ordenado de

Más detalles

14. ÁRBOLES. 14.1 Fundamentos y terminología básica

14. ÁRBOLES. 14.1 Fundamentos y terminología básica Ricardo Ferrís / Jesús Albert Algoritmos y estructuras de datos I 14. ÁRBOLES 14.1 FUNDAMENTOS Y TERMINOLOGÍA BÁSICA... 79 14.2. ÁRBOLES BINARIOS... 81 14.3. FUNDAMENTOS... 82 14.3. OPERACIONES CON ÁRBOLES

Más detalles

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS

NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS 1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para

Más detalles

Árboles Binarios Ordenados Árboles AVL

Árboles Binarios Ordenados Árboles AVL Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega

Más detalles

Árboles binarios de búsqueda

Árboles binarios de búsqueda Clase 27 Árboles binarios de búsqueda Árboles binarios de búsqueda En la clase anterior, definimos el concepto de árbol binario de búsqueda como un árbol binario de nodos que contienen una clave ordenada

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no

Más detalles

Árboles AVL. Laboratorio de Programación II

Árboles AVL. Laboratorio de Programación II Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus

Más detalles

Definición de árbol. Árboles

Definición de árbol. Árboles ÁRBOLES Árboles * Definición de árbol * Formas de representación * Nomenclatura sobre árboles * Árboles binarios * Declaración de árbol binario * Recorridos sobre árboles binarios * Construcción de un

Más detalles

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA

PRÁCTICA No. 13 ÁRBOL BINARIO DE BÚSQUEDA INSTITUTO POLITÉCNICO NACIONAL SECRETARIA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR ESIME CULHUACAN NOMBRE ALUMNO: FECHA DIA MES AÑO INGENIERÍA EN COMPUTACIÓN ASIGNATURA 1. Objetivo Apellido paterno ESTRUCTURAS

Más detalles

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción

Árbol binario. Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Árbol binario Elaborado por Ricardo Cárdenas cruz Jeremías Martínez Guadarrama Que es un árbol Introducción Un Árbol Binario es un conjunto finito de Elementos, de nombre Nodos de forma que: El Árbol Binario

Más detalles

Clase 32: Árbol balanceado AVL

Clase 32: Árbol balanceado AVL Clase 32: Árbol balanceado AVL http://computacion.cs.cinvestav.mx/~efranco @efranco_escom efranco.docencia@gmail.com (Prof. Edgardo A. Franco) 1 Contenido Problema de los árboles binarios de búsqueda Variantes

Más detalles

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009

Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009 Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier

Más detalles

Ampliación de Estructuras de Datos

Ampliación de Estructuras de Datos Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios

Más detalles

ESTRUCTURAS DE DATOS ÁRBOLES 143

ESTRUCTURAS DE DATOS ÁRBOLES 143 ESTRUCTURAS DE DATOS ÁRBOLES 143 TEMA 4. ÁRBOLES 4.1. CONCEPTOS GENERALES. Un árbol es una estructura de datos ramificada (no lineal) que puede representarse como un conjunto de nodos enlazados entre sí

Más detalles

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios

Tema 10- Representación Jerárquica: Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Tema 10- Representación Jerárquica: Árboles Binarios Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia

Más detalles

Ing. Manuel Ramírez López ITESCA

Ing. Manuel Ramírez López ITESCA ANTOLOGÍA DE ESTRUCTURA DE DATOS 2 Ing. Manuel Ramírez López ITESCA Estructura de Datos Antología de la Materia 2 Instituto Tecnológico Superior de Cajeme Carretera Internacional Km. 2 Teléfono (644) 415

Más detalles

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES

ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents

Más detalles

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO

Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda

Más detalles

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004

Notas de Clase. Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia. 21 de febrero de 2004 Árboles Notas de Clase Prof. Juan Andrés Colmenares, M.Sc. Instituto de Cálculo Aplicado Facultad de Ingeniería Universidad del Zulia 21 de febrero de 2004 Índice 1. Definición 1 2. Términos Básicos 2

Más detalles

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny

ÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.

Más detalles

Capítulo 12: Indexación y asociación

Capítulo 12: Indexación y asociación Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación

Más detalles

Árboles binarios de búsqueda ( BST )

Árboles binarios de búsqueda ( BST ) Árboles binarios de búsqueda ( BST ) mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 24.04.2015 Arbol Binario de Búsqueda Un árbol binario de búsqueda (Binary Search Tree [BST]) es un árbol

Más detalles

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos

Árboles de Búsqueda Binaria. Agustín J. González ELO-320: Estructura de Datos y Algoritmos Árboles de Búsqueda Binaria Agustín J. González ELO-320: Estructura de Datos y Algoritmos 1 Introducción Los árboles de búsqueda son estructuras de datos que soportan las siguientes operaciones de conjuntos

Más detalles

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar.

Definición: NODO Un nodo es un punto de intersección o unión de varios elementos que confluyen en el mismo lugar. Definición: ÁRBOL El árbol es como un tipo de grafo cíclico, conexo y no dirigido. Las estructuras tipo árbol se usan principalmente para representar datos con una relación jerárquica entre sus elementos.

Más detalles

Estructuras de Datos Abstractas en Lenguaje Java

Estructuras de Datos Abstractas en Lenguaje Java Universidad de Santiago de Chile Facultad de Ingeniería Departamento de Ingeniería Industrial Estructuras de Datos Abstractas en Lenguaje Java Listas Enlazadas, Colas, Pilas y Árboles Binarios Creado por

Más detalles

Capítulo 6. ÁRBOLES.

Capítulo 6. ÁRBOLES. 67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento

Más detalles

VI Colas de prioridad

VI Colas de prioridad VI Colas de prioridad Una cola de prioridad (cat: cua de prioritat; ing: priority queue) es una colección de elementos donde cada elemento tiene asociado un valor susceptible de ordenación denominado prioridad.

Más detalles

Algoritmos sobre Grafos

Algoritmos sobre Grafos Sexta Sesión 27 de febrero de 2010 Contenido Deniciones 1 Deniciones 2 3 4 Deniciones sobre Grafos Par de una lista de nodos y una lista de enlaces, denidos a su vez como pares del conjunto de nodos.

Más detalles

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales

Estructura de Datos. TDA: Listas. Primer Semestre, 2010. Indice. Tipos de estructura de datos lineales Estructura de Datos TDA: Listas Prof. Mauricio Solar Prof. Lorna Figueroa Parte del material fue obtenido de Lic. Claudio Barúa Primer Semestre, 2010 Indice Tipos de estructura de datos lineales Listas

Más detalles

TAD Lineales: Pila, Cola y Lista

TAD Lineales: Pila, Cola y Lista TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de

Más detalles

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:

El programa que permite el manejo de la base de datos tiene la siguiente funcionalidad: El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un

Más detalles

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Solución al Examen de Prácticas de Programación (Ingeniería Informática) Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa

Más detalles

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos Tema 2 Memoria Dinámica 2.1 Datos estáticos y dinámicos Datos estáticos: su tamaño y forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación. El ejemplo

Más detalles

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

Registro (record): es la unidad básica de acceso y manipulación de la base de datos.

Registro (record): es la unidad básica de acceso y manipulación de la base de datos. UNIDAD II 1. Modelos de Bases de Datos. Modelo de Red. Representan las entidades en forma de nodos de un grafo y las asociaciones o interrelaciones entre estas, mediante los arcos que unen a dichos nodos.

Más detalles

Estructuras de Datos en Java

Estructuras de Datos en Java Estructuras de Datos en Java 1. Antecedentes Introducción a la Orientación a Objetos La programación orientada a objetos (POO) es una nueva manera de enfocar la programación. Desde sus comienzos, la programación

Más detalles

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres

GRAFOS. Prof. Ing. M.Sc. Fulbia Torres ESTRUCTURAS DE DATOS 2006 Prof. DEFINICIÓN Un grafo consta de un conjunto de nodos(o vértices) y un conjunto de arcos (o aristas). Cada arco de un grafo se especifica mediante un par de nodos. Denotemos

Más detalles

Programación de Sistemas

Programación de Sistemas Programación de Sistemas Algoritmos de Ordenación Índice Por qué es importante la ordenación? Un par de ejemplos InsertionSort QuickSort Para cada uno veremos: En qué consisten, Casos extremos Eficiencia

Más detalles

Análisis amortizado El plan:

Análisis amortizado El plan: Análisis amortizado El plan: Conceptos básicos: Método agregado Método contable Método potencial Primer ejemplo: análisis de tablas hash dinámicas Montículos agregables (binomiales y de Fibonacci) Estructuras

Más detalles

Capítulo V Operaciones Booleanas

Capítulo V Operaciones Booleanas 85 Capítulo V Operaciones Booleanas 5.1 Introducción Es muy posible que en muchos casos sea necesario comparar dos objetos y determinar cuál es su parte común. Esto implica intersectar los dos objetos

Más detalles

ARREGLOS DEFINICION GENERAL DE ARREGLO

ARREGLOS DEFINICION GENERAL DE ARREGLO ARREGLOS DEFINICION GENERAL DE ARREGLO Conjunto de cantidades o valores homogéneos, que por su naturaleza se comportan de idéntica forma y deben de ser tratados en forma similar. Se les debe de dar un

Más detalles

Estructuras de Datos Dinámicas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos dinámicas

Estructuras de Datos Dinámicas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos dinámicas Fundación Misión Sucre Colegio Universitario de Caracas Taller 3: Estructuras de Datos Dinámicas Objetivo Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos dinámicas Contenido

Más detalles

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24

Contenido. Prólogo... Capítulo 1. Algoritmos y estructuras de datos... 1. Introducción... 24 Contenido Prólogo... vii Capítulo 1. Algoritmos y estructuras de datos... 1 Introducción... 2 1.1. Tipos de datos... 2 1.1.1. Tipos primitivos de datos... 3 1.1.2. Tipos de datos compuestos y agregados...

Más detalles

Estructura de datos Tema 6: Tablas de dispersión (hashing)

Estructura de datos Tema 6: Tablas de dispersión (hashing) Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash

Más detalles

3. COLA DE PRIORIDAD DEFINICION (I)

3. COLA DE PRIORIDAD DEFINICION (I) 3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)

Más detalles

Ejemplos de conversión de reales a enteros

Ejemplos de conversión de reales a enteros Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print

Más detalles

Arboles AA. Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015

Arboles AA. Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015 Arboles AA Kenneth Sanchez y Tamara Moscoso 8 de octubre del 2015 Abstract En la industria comercial, durante mucho tiempo se han pasado por alto metodos de ordenamiento con una eficiencia buena y en su

Más detalles

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos

Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella 2008 1 Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección

Más detalles

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario

Más detalles

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

Más detalles

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.

Tema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN. Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a

Más detalles

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:

Estructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas: Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)

Más detalles

Instituto de Computación - Facultad de Ingeniería - Universidad de la República

Instituto de Computación - Facultad de Ingeniería - Universidad de la República Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo

Más detalles

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11

Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 índice Reconocímíentes y Agradecimientos 5 Indice 6 Prólogo 11 Capítulo 1: Introducción a c/e++ Introducción a C/C++ 13 Introducción 14 Primeros Pasos en C/C++ 15 Mi Primer Programa 15 Bibliotecas 17 Archivos

Más detalles

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1

Sistemas de producción y búsqueda de soluciones. Area de Computación e Inteligencia Artificial 1 Sistemas de producción y búsqueda de soluciones Area de Computación e Inteligencia Artificial 1 Técnicas de búsqueda Resolución de problemas en Inteligencia Artificial. En general, podemos afirmar que

Más detalles

Búsqueda heurística Prof. Constantino Malagón

Búsqueda heurística Prof. Constantino Malagón Búsqueda heurística Prof. Constantino Malagón Area de Computación e Inteligencia Artificial 1 Búsqueda heurística Los métodos de búsqueda heurística disponen de alguna información sobre la proximidad de

Más detalles

Apuntes de Grafos. 1. Definiciones

Apuntes de Grafos. 1. Definiciones Apuntes de Grafos Un grafo es una entidad matemática introducida por Euler en 736 para representar entidades (vértices) que pueden relacionarse libremente entre sí, mediante el concepto de arista Se puede

Más detalles

Convivencia. Gestión del Sistema de Archivos

Convivencia. Gestión del Sistema de Archivos Convivencia Gestión del Sistema de Archivos Dra. Carolina Carolina Mañoso Mañoso Dpto. Dpto. Imformática Informática y y Automática.UNED Introducción Se necesitan tres condiciones para el almacenamiento

Más detalles

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda

MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda<T> MANUAL DE USUARIO: Simulador ArbolBinarioBusqueda Descripción General El presente Manual de usuario pretende describir en detalle el conjunto de funcionalidades de la Aplicación desarrollada para la

Más detalles

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1).

ÁRBOL BINARIO. T der. Árbol binario homogéneo es aquel cuyos nodos tienen grado 0 ó 2(no hay ninguno de grado 1). ÁRBOL BINARIO - Un árbol binario puede definirse como un árbol que en cada nodo puede tener como mucho grado 2, es decir, a lo más 2 hijos. Los hijos suelen denominarse hijo a la izquierda e hijo a la

Más detalles

Práctica 3: Programación con subrutinas

Práctica 3: Programación con subrutinas Práctica 3: Programación con subrutinas 3.1 Objetivos El objetivo de esta práctica es estudiar el soporte del ensamblador del ARM para la gestión de subrutinas, para lo que resulta necesario familiarizarse

Más detalles

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11

Diseño y Admón. de Bases de Datos. Ingeniería Informática curso 2010/11 Laboratorio 06. Objetivos: Representación interna de un BD. Tablas, índices e índices full-text. Sesiones: 1 (24 de noviembre de 2010) Ejercicio: 1. Representación interna: 1.1. Copiar al repositorio de

Más detalles

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Árboles Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof. Paula Echenique Una de las estructuras de datos más importantes

Más detalles

Arreglos. // Incluir E/S y Librerías Standard #include #include

Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h> Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en

Más detalles

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1

Sistema de Ficheros. Sistemas Operativos - ITIG. Álvaro Polo Valdenebro. Abril 2009. apoloval@gsyc.es. GSyC - 2009 Introducción 1 Sistema de Ficheros Sistemas Operativos - ITIG Álvaro Polo Valdenebro apoloval@gsyc.es Abril 2009 GSyC - 2009 Introducción 1 c 2009 GSyC Algunos derechos reservados. Este trabajo se distribuye bajo la

Más detalles

Estructura de datos (arreglos) Vectores y Matrices

Estructura de datos (arreglos) Vectores y Matrices Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras

Más detalles

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.

Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación. Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden

Más detalles

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia

Estructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras

Más detalles

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios

Temario. Tema 5. Estructuras de Datos no Lineales. 5.1 Árboles Binarios 5.2 Árboles n-arios Temario 5.1 Árboles Binarios 5.2 Árboles n-arios Especificación Utilización Representación Enlazada 5.3 Árboles Binarios de Búsqueda 5.4 Árboles Parcialmente Ordenados 1 Árbol n-ario: O bien es el conjunto

Más detalles

ESTRUCTURA DE DATOS: ARREGLOS

ESTRUCTURA DE DATOS: ARREGLOS ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción

Más detalles

1 Agencia de viajes: enunciado

1 Agencia de viajes: enunciado 1 AGENCIA DE VIAJES: ENUNCIADO 1 1 Agencia de viajes: enunciado Una agencia de viajes mantiene una base de datos con exactamente N clientes y M destinos turísticos. En una situación real, estos valores

Más detalles

CURSO DE PROGRAMACIÓN WEB EJERCICIOS PHP

CURSO DE PROGRAMACIÓN WEB EJERCICIOS PHP CURSO DE PROGRAMACIÓN WEB EJERCICIOS PHP Tabla de contenido Ejercicio 1... 3 Ejercicio 2... 4 Ejercicio 3... 4 Ejercicio 4... 5 Ejercicio 5... 5 Ejercicio 6... 6 Ejercicio 7... 7 Ejercicio 8... 8 Ejercicio

Más detalles

Almacenamiento y Recuperación de la Información

Almacenamiento y Recuperación de la Información Almacenamiento y Recuperación de la Información Estructuras basicas de archivos Archivos Secuenciales 2do Semestre 2005 Wenceslao Palma M. www.inf.utfsm.cl/~wpalma/ari Una estructura

Más detalles

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista:

Un elemento de cualquier clase llamada Info; Un puntero a un nuevo nodo llamado sig; De tal forma una unión de nodos hace que tengamos una lista: Tipos Abstractos de Datos: TAD Lista en educación Profesional 1.- Introducción Los tipos abstractos de datos son fundamentales para la informática puesto que de ellos se sirven todos los programas para

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles

GENERALIDADES DE BASES DE DATOS

GENERALIDADES DE BASES DE DATOS GENERALIDADES DE BASES DE DATOS A fin de evitar que idénticos datos se encuentren repetidos en múltiples archivos, parece necesario que los comunes se almacenen en un archivo único y que este archivo sea

Más detalles

3. ESTRUCTURAS DE DATOS NO LINEALES

3. ESTRUCTURAS DE DATOS NO LINEALES 3. ESTRUCTURAS DE DATOS NO LINEALES 3.1 Conjuntos 3.2 Árboles 3.3 Grafos 1 3.1 Conjuntos Índice Introducción Especificación del TAD TipoConjunto Implementaciones del TAD TipoConjunto Programación usando

Más detalles

Tema 2. Organizaciones de ficheros y estructuras de acceso

Tema 2. Organizaciones de ficheros y estructuras de acceso Tema 2. Organizaciones de ficheros y estructuras de acceso Ficheros y Bases de Datos 10 de junio de 2002 1. Introducción Este documento contiene preguntas del tema 2 recogidas por estudiantes de la asignatura

Más detalles

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008

INTRODUCCIÓN. Estructura de Datos Tipos Abstractos de Datos (TAD S) Profs. Lorna Figueroa M. Mauricio Solar F. UTFSM 1 / 2008 INTRODUCCIÓN Estructura de Datos Tipos Abstractos de Datos (TAD S) Para poder obtener un programa que resuelva un problema dado, son necesarios varios pasos : La formulación y especificación del problema

Más detalles

Tema 1: Implementación del sistema de archivos

Tema 1: Implementación del sistema de archivos Tema 1: Implementación del sistema de archivos 1. Introducción 2. Implementación 3. Estructura del almacenamiento secundario Dpto. Tema Lenguajes 1: Implementación y Sistemas del Informáticos. sistema

Más detalles

Listas, Pilas, Colas y Punteros. Semana 3

Listas, Pilas, Colas y Punteros. Semana 3 Listas, Pilas, Colas y Punteros Semana 3 Dictado por Marco González Núñez 14 de Febrero de 2011 Estructuras de datos simples Hoy hablaremos de lo que sin duda me motivó a crear este curso que son los punteros,

Más detalles

Capítulo 1. MANUAL DE USUARIO

Capítulo 1. MANUAL DE USUARIO Capítulo 1. MANUAL DE USUARIO 1.1 SUCESIONES GRÁFICAS Lo primero que se hará es mostrar la pantalla que se encontrará el usuario cuando ejecute la aplicación, indicando las zonas en las que se divide esta:

Más detalles

Parte II: Estructuras de datos y algoritmos

Parte II: Estructuras de datos y algoritmos Parte II: Estructuras de datos y algoritmos Tema 11. Tipos abstractos de datos. Conceptos básicos. Listas. Pilas. Colas. Vectores. Conjuntos. Mapas. Árboles. Árboles binarios. GRUPO DE COMPUTADORES Y TIEMPO

Más detalles

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...

Más detalles

Práctica 2: Simón dice

Práctica 2: Simón dice Práctica 2: Simón dice Fecha de entrega: 31 de enero de 2016 0.- Descripción del juego (Wikipedia.org) Simon dice es un juego electrónico, creado por Ralph Baer, que consiste en reproducir una secuencia

Más detalles

Tema 8: Algoritmos de ordenación y búsqueda

Tema 8: Algoritmos de ordenación y búsqueda Tema 8: Algoritmos de ordenación y búsqueda Objetivos: en este tema se presentan algoritmos que permiten buscar un elemento dentro de una colección y ordenar una colección en base a algún criterio (el

Más detalles

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas).

Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). TEMA 5.- GRAFOS 5.1.- DEFINICIONES BÁSICAS Un grafo G es un par (V,E) donde V es un conjunto (llamado conjunto de vértices) y E un subconjunto de VxV (conjunto de aristas). Gráficamente representaremos

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II

ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II ARBOLES ARBOLES COMPUTACIONALES MATEMATICAS DISCRETAS II Contenido Concepto Características y Propiedades Tipos de Arboles 1. Libres 2. Binarios 3. Expansión Mínima Algoritmo de Kruskal Algoritmo Prim

Más detalles

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica

TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y

Más detalles

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1.

Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP. Alejandro Santos. 7 de agosto de 2012. 1. Apuntes de Algoritmos y Estructuras de Datos, Programación III, Fac. de Informática UNLP Índice Alejandro Santos 7 de agosto de 2012 1. Introducción 4 2. Tiempo de Ejecución 5 2.1. Análisis Asintótico

Más detalles

Tema 4.- Pilas y Colas

Tema 4.- Pilas y Colas Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente

Más detalles

Bases de Datos Indexación y Hashing 1. Indexación. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006

Bases de Datos Indexación y Hashing 1. Indexación. Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Indexación y Hashing 1 Indexación Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Indexación y Hashing 2 Acceso a Datos Muchas consultas hacen referencia sólo a una

Más detalles