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

Á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

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

á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

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 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

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

Clase 32: Árbol balanceado AVL

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

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

Á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

Á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

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

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

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

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

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

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

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

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

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

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

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: Á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 [email protected] Árboles binarios de búsqueda, Table of Contents

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

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

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

Á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

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

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

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

Á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

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP

CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable

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

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

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

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández.

Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández. Sistema para el control y tramitación de documentos SITA MSc. María de la Caridad Robledo Gómez y Ernesto García Fernández. CITMATEL Ave 47 e/18 A y 20, Playa, Ciudad de La habana, CP 10300 Cuba. E mail:

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

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

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

HERRAMIENTAS DE ACCESS ACCESS 2010. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS ACCESS 2010 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE HERRAMIENTAS DE ACCESS En esta unidad veremos algunas de las herramientas incorporadas de Access que

Más detalles

WINDOWS. Iniciando Windows. El mouse

WINDOWS. Iniciando Windows. El mouse Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible

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

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

Principales rutinas de mantenimiento en una base de datos Firebird

Principales rutinas de mantenimiento en una base de datos Firebird Principales rutinas de mantenimiento en una base de datos Firebird a) Eliminación de una póliza La eliminación de registros de los distintos catálogos de Aspel-COI, siempre es recomendable hacerla dentro

Más detalles

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE

GUIA APLICACIÓN DE SOLICITUDES POR INTERNET. Gestión de Cursos, Certificados de Aptitud Profesional y Tarjetas de Cualificación de Conductores ÍNDICE ÍNDICE ACCESO A LA APLICACIÓN... 2 1.- HOMOLOGACIÓN DE CURSOS... 4 1.1.- INICIAR EXPEDIENTE... 4 1.2.- CONSULTA DE EXPEDIENTES... 13 1.3.- RENUNCIA A LA HOMOLOGACIÓN... 16 2.- MECÁNICA DE CURSOS... 19

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

Introducción a la Teoría de Grafos

Introducción a la Teoría de Grafos Introducción a la Teoría de Grafos Flavia Bonomo [email protected] do. Cuatrimestre 009 Árboles Un árbol es un grafo conexo y acíclico (sin ciclos). Un bosque es un grafo acíclico, o sea, una unión disjunta

Más detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

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

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

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

7. Manejo de Archivos en C.

7. Manejo de Archivos en C. 7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de

Más detalles

6.1. Conoce la papelera

6.1. Conoce la papelera Unidad 6. La papelera de Reciclaje 6.1. Conoce la papelera La papelera no es más que un espacio en el disco duro reservado para almacenar la información que eliminamos, evitando que esta información aparezca,

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

Capitulo V Administración de memoria

Capitulo V Administración de memoria Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal

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

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

Pilas y Colas. Capítulo 3

Pilas y Colas. Capítulo 3 Pilas y Colas Capítulo 3 Pilas Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una

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

Estructuras de Datos y Algoritmos. Árboles de Expresión

Estructuras de Datos y Algoritmos. Árboles de Expresión Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.

Más detalles

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Unidad I Sistemas numéricos 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal) Los computadores manipulan y almacenan los datos usando interruptores electrónicos que están ENCENDIDOS o APAGADOS.

Más detalles

GENERACIÓN DE TRANSFERENCIAS

GENERACIÓN DE TRANSFERENCIAS GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base

Más detalles

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.

ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. Sala de sistemas, Video proyector, Guías RECURSOS ACTIVIDADES PEDAGÓGICAS

Más detalles

GENERACIÓN DE ANTICIPOS DE CRÉDITO

GENERACIÓN DE ANTICIPOS DE CRÉDITO GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos

Más detalles

MEDIDAS DE TENDENCIA CENTRAL

MEDIDAS DE TENDENCIA CENTRAL CAPÍTULO 14 MEDIDAS DE TENDENCIA CENTRAL A veces, de los datos recolectados ya organizados en alguna de las formas vistas en capítulos anteriores, se desea encontrar una especie de punto central en función

Más detalles

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10 CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,

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

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Creación de Funciones de Conducción

Creación de Funciones de Conducción Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado

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

Módulo II - PowerPoint

Módulo II - PowerPoint Módulo II - PowerPoint Índice Copiando diapositivas Menú Edición... 2 Copiando diapositivas utilizando la barra de herramientas... 3 Copiando diapositivas utilizando el menú contextual... 3 Copiando diapositivas

Más detalles

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que

Más detalles

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. 1 Direcciones o Ubicaciones, Carpetas y Archivos Botones de navegación. El botón Atrás permite volver a carpetas que hemos examinado anteriormente. El botón Arriba

Más detalles

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda: Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor

Más detalles

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco? BANCOS El Sistema de Gestión Administrativa permite el manejo de los movimientos bancarios. Seleccionada la opción de Bancos, el sistema presentara las siguientes opciones. Manejo de Bancos Manejo de movimientos

Más detalles

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido

Tema 3. Medidas de tendencia central. 3.1. Introducción. Contenido Tema 3 Medidas de tendencia central Contenido 31 Introducción 1 32 Media aritmética 2 33 Media ponderada 3 34 Media geométrica 4 35 Mediana 5 351 Cálculo de la mediana para datos agrupados 5 36 Moda 6

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

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1

1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 1 1 1 5.1.3 Multiplicación de números enteros. El algoritmo de la multiplicación tal y como se realizaría manualmente con operandos positivos de cuatro bits es el siguiente: 1 1 0 1 x 1 0 1 1 1 1 0 1 + 1 1 0

Más detalles

Ecuaciones de primer grado con dos incógnitas

Ecuaciones de primer grado con dos incógnitas Ecuaciones de primer grado con dos incógnitas Si decimos: "las edades de mis padres suman 120 años", podemos expresar esta frase algebraicamente de la siguiente forma: Entonces, Denominamos x a la edad

Más detalles

Divisibilidad y números primos

Divisibilidad y números primos Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos

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

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

2. Entorno de trabajo y funcionalidad en Arquímedes

2. Entorno de trabajo y funcionalidad en Arquímedes 2. Entorno de trabajo y funcionalidad en Arquímedes 2.9. Presupuestos comparativos. Cómo contrastar ofertas... 1 2.9.1. Análisis de los datos del comparativo de presupuestos... 4 2.9.2. Ejemplo de comparativo

Más detalles

Cifras significativas e incertidumbre en las mediciones

Cifras significativas e incertidumbre en las mediciones Unidades de medición Cifras significativas e incertidumbre en las mediciones Todas las mediciones constan de una unidad que nos indica lo que fue medido y un número que indica cuántas de esas unidades

Más detalles

Gestión de Retales WhitePaper Noviembre de 2009

Gestión de Retales WhitePaper Noviembre de 2009 Gestión de Retales WhitePaper Noviembre de 2009 Contenidos 1. Introducción 3 2. Almacén de retales 4 3. Propiedades de los materiales 6 4. Alta de retales 8 5. Utilización de retales en un lote de producción

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

Manual de Procedimiento

Manual de Procedimiento Manual de Procedimiento INSTALACION DEL PROGRAMA Este manual pretende ser una ayuda para el usuario, indicando cada uno de los pasos a seguir en su utilización. REQUERIMIENTOS: 1. Windows 98 o superior.

Más detalles

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid

UAM MANUAL DE EMPRESA. Universidad Autónoma de Madrid MANUAL DE EMPRESA Modo de entrar en ÍCARO Para comenzar a subir una oferta de empleo, el acceso es a través del siguiente enlace: http://icaro.uam.es A continuación, aparecerá la página de inicio de la

Más detalles

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos.

En esta unidad añadiremos información sobre EXT3 y trabajaremos con aspectos visibles que nos proporcionan estos sistemas de archivos. ESTRUCTURA DEL SISTEMA DE ARCHIVOS 1. Introducción. En la unidad anterior se esbozó mediante la explicación de los formatos del disco duro, distintos tipos de sistemas de archivos: FAT16, FAT32, NTFS y

Más detalles

Oficina Online. Manual del administrador

Oficina Online. Manual del administrador Oficina Online Manual del administrador 2/31 ÍNDICE El administrador 3 Consola de Administración 3 Administración 6 Usuarios 6 Ordenar listado de usuarios 6 Cambio de clave del Administrador Principal

Más detalles

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS

LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS ESTRUCTURA DE COMPUTADORES Pag. 8.1 LECCIÓN 8: CIRCUITOS Y ALGORITMOS DE MULTIPLICACIÓN DE ENTEROS 1. Circuitos de multiplicación La operación de multiplicar es mas compleja que la suma y por tanto se

Más detalles

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio

promedio = nint((notas(1) + notas(2) + notas(3) + & notas(4) + notas(5) + notas(6)) / 6.0) print *, 'Su promedio es', promedio Arreglos Un arreglo es un tipo de datos que contiene varios elementos de un mismo tipo. Cada elemento tiene asociado un índice, y puede ser tratado como si fuera una variable. La cantidad de elementos

Más detalles

Indicaciones específicas para los análisis estadísticos.

Indicaciones específicas para los análisis estadísticos. Tutorial básico de PSPP: Vídeo 1: Describe la interfaz del programa, explicando en qué consiste la vista de datos y la vista de variables. Vídeo 2: Muestra cómo crear una base de datos, comenzando por

Más detalles

Manual de Microsoft Power Point 2007 Parte 2 Universidad Politécnica de San Luis Potosí

Manual de Microsoft Power Point 2007 Parte 2 Universidad Politécnica de San Luis Potosí Contenido: Manual de Microsoft Power Point 2007 Parte 2 1. Insertar y dar formato a los cuadros de texto.... 2 2. Insertar cuadros de texto.... 2 3. Estilos de forma - Contornos y colores.... 3 4. Estilos

Más detalles

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD

CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD CONFIGURACION AVANZADA DE MOZILLA THUNDERBIRD Carpetas sin Conexión... 2 Gestión de mensajes enviados... 3 Gestión de mensajes eliminados... 6 Firma Digital... 8 Envío de mensajes firmados digitalmente...

Más detalles

Guía N 1: Fundamentos básicos(i)

Guía N 1: Fundamentos básicos(i) 1 Guía N 1: Fundamentos básicos(i) Objetivos Generales: Ver una breve descripción de las capacidades más comunes de Excel Objetivos específicos: Descripción de los elementos de un libro: Hojas, iconos,

Más detalles

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :

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