Árboles binarios de búsqueda
|
|
|
- Dolores Castillo Vera
- hace 10 años
- Vistas:
Transcripción
1 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 con la siguiente propiedad adicional: el subárbol a la izquierda de cada nodo (si existe) debe contener sólo nodos con claves menores o iguales al padre y el subárbol a la derecha (si existe) debe contener sólo nodos con claves mayores o iguales al padre. También vimos que el recorrido inorder de dicho árbol está ordenado. 2 1
2 Objetivos Implementaremos un árbol binario de búsqueda y analizaremos la implementación. Las generalizaciones de los árboles binarios de búsqueda aportan aplicaciones importantes, incluidas las bases de datos comerciales. La implementación le dará una idea de los métodos de árboles que suelen ser más "visuales" o "topológicos" que las implementaciones de arrays o listas. 3 Claves y valores Si los árboles binarios de búsqueda están ordenados, deben estarlo según alguna clave incluida en cada nodo del árbol. Un nodo puede contener únicamente la clave, pero suele resultar útil permitir que cada nodo contenga una clave y un valor. La clave se utiliza para analizar el nodo. El valor es un dato adicional del nodo indexado por la clave. 4 2
3 Mapas Las estructuras de datos con pares clave/valor suelen recibir el nombre de mapas. Como ejemplo, considere las entradas de una agenda de teléfonos tal como se insertarían en un árbol binario de búsqueda. El apellido del abonado sería la clave y el número de teléfono sería el valor. 5 Tipo de claves y valores A veces el valor no es necesario, pero si un nodo tiene un valor, probablemente quiera que todos lo tengan. Tampoco hemos especificado el tipo de la clave y del valor. Pueden ser de cualquier clase que desee, pero todos los nodos deben contener claves y valores que sean instancias de la misma clase. Las claves y los valores no tienen por qué ser del mismo tipo. Se pueden tratar como objetos en la implementación del árbol, salvo en el momento en que necesitemos compararlos. 6 3
4 Claves duplicadas Permitimos que el árbol contenga nodos con claves idénticas? No hay nada en el concepto de los árboles binarios de búsqueda que impida las claves duplicadas. En la interfaz que implementemos, utilizaremos las claves para acceder a los valores. Si permitimos la existencia de claves idénticas, no podríamos distinguir nodos distintos que posean la misma clave. Por tanto, en esta implementación, no se permiten claves duplicadas. Los valores duplicados asociados a claves distintas sí están permitidos. 7 InterfazSortedMap public interface SortedMap { // las claves no pueden ser null pero los valores sí public boolean isempty(); public void clear(); public int size(); public Object get( Object key ); public Object firstkey(); public Object lastkey(); public Object remove( Object key ); public Object put( Object key, Object value ); public MapIterator iterator(); 8 4
5 5 Notas desortedmap get(), firstkey(), lastkey() devuelven los valores adecuados y dejan el par clave/valor en el mapa. firstkey() y lastkey() devuelvennull si el mapa está vacío remove() devuelve el valor si la clave está presente; de lo contrario, devuelve null put(): si la clave no está en el mapa, inserta el nuevo par clave/valor; si la clave ya está presente, devuelve el valor antiguo y lo sustituye por el valor nuevo en el mapa 9 InterfazMapIterator public interface MapIterator { public boolean hasnext(); public Object next() throws NoSuchElementException; public Object remove() throws IllegalStateException; public Object key() throws IllegalStateException; public Object getvalue() throws IllegalStateException; public Object setvalue( Object value ) throws IllegalStateException; 10
6 Comparator Si las claves son objetos arbitrarios, cómo se ordenan? El usuario puede crear su propio comparador public interface Comparator { // Ni o1 ni o2 pueden ser null public int compare(object o1, Object o2); 11 StringComparator public class StringComparator implements Comparator { public int compare(object o1, Object o2) { return ((String) o1).compareto((string) o2); BinarySearchTree btree = new BinarySearchTree( new StringComparator() ); 12 6
7 Interfaz Comparable En versiones recientes del JDK, todas las clases empaquetadas para tipos incorporados implementan una interfazcomparable independiente: public interface Comparable { public int compareto(object o); Como String implementa la interfaz Comparable, no necesitamos implementar el comparador especial StringComparator. El método compareto() devuelveints con el mismo sentido que la interfaz Comparator. 13 Implementación de BinarySearchTree Tendremos un árbol y clases de nodos independientes para BinarySearchTree. Utilizaremos una clase interna estática privada para la clase del nodo,branch, tal como hicimos para la clase SLink enslinkedlist. public class BinarySearchTree implements SortedMap { private Branch root = null; private intlength = 0; private Comparator comparator = null; 14 7
8 Clase internabranch Branch contiene enlaces a su nodo padre y a los subárboles derecho e izquierdo. Con esto, algunas operaciones, como eliminar un nodo, resultan mucho más eficaces. static private class Branch { private Branch left = null; private Branch right = null; private Branch parent = null; private Object key; private Object value = null; 15 Métodos sencillos public BinarySearchTree( Comparator c ) { comparator = c; public BinarySearchTree() { this( null ); public void clear() { root = null; length = 0; public boolean isempty() { return ( root == null ); 16 8
9 MétodofirstKey() public Object firstkey() { if ( root == null ) return null; else return root.first().key; In Branch: Branch first() { Branch f = this; while ( f.left!= null ) { f = f.left; return f; 17 firstkey() en acción 1ª iteración 2ª iteración
10 Método get() public Object get( Object k ) { Branch b = find( k ); return ( b == null )? null : b.value; private Branch find( Object k ) { Branch b = root; int c; while (b!= null && (c=compare( k, b.key ))!= 0) { if ( c < 0 ) b = b.left; else b = b.right; return b; 19 get() en acción get(19) 1ª iteración ª iteración
11 Método compare() private int compare(object k1, Object k2) { if ( k1 == null k2 == null ) throw new IllegalArgumentException( "Clave null no permitida" ); // si hay un comparador, utilícelo if ( comparator!= null ) else { return comparator.compare( k1, k2 ); return ((Comparable)k1).compareTo(k2); 21 Estrategiaput() Nuestra estrategia es buscar la clave suministrada como un argumento. Si la encontramos, devolveremos el valor antiguo después de reemplazarlo con el nuevo. Mientras buscamos el nodo, seguiremos de cerca nuestra búsqueda manteniendo una referencia al padre del nodo actual. Si no lo encontramos, la búsqueda finalizará al llegar a una rama null. En este caso, la referencia padre identificará al padre del nuevo nodo insertado
12 put() en acción put(20,x) padre al final de una búsqueda fallida null 27 nuevo nodo Métodoput(), 1 public Object put(object k, Object v) { Branch p = null; Branch b = root; int c = 0; // busca el nodo con clave k manteniendo la ref p al padre while ( b!= null ) { p = b; c = compare( k, b.key ); if ( c == 0 ) { // lo encuentra; inserta un nuevo valor, devuelve old Object oldvalue = b.value; b.value = v; return oldvalue; else if ( c < 0 ) b = b.left; else b = b.right; 12
13 Método put(), 2 // La clave k no existe en el árbol; // inserta un nuevo nodo debajo de p(adre) Branch newbranch = new Branch( k, v, p ); length++; if ( p == null ) { root = newbranch; else { // c sigue conservando la última comparación if ( c < 0 ) p.left = newbranch; else p.right = newbranch; return null; Estrategia delete() remove() llama adelete() para que haga casi todo. Cuando eliminamos un nodo de un árbol binario de búsqueda, debemos comprobar que la estructura resultante (1) sigue siendo un árbol y (2) que el árbol sigue cumpliendo la regla de un árbol binario de búsqueda. La regla requiere que, para cada nodo, las claves del subárbol izquierdo (si existe) preceda a la clave del nodo que debe preceder a las claves del subárbol derecho
14 Casos de delete(), 1 Hay tres casos de eliminación que debemos tener en cuenta: 1. El nodo eliminado no tiene hijos, p.ej., nodo 29 debajo. 2. El nodo eliminado tiene un hijo, p.ej., nodo 7 debajo. 3. El nodo eliminado tiene dos hijos, p.ej., nodo 25 debajo delete(), sin hijos
15 delete(), 1 hijo delete(), 2 hijos
16 delete(), estrategia de 2 hijos En el último caso (dos hijos), el problema es más grave, ya que el árbol está ahora en tres partes. La solución comienza por darse cuenta de que es posible minimizar el problema del orden uniendo el árbol con el nodo que precede o sucede inmediatamente al nodo eliminado en la secuencia inorder. Estos nodos reciben el nombre de predecesores y sucesores. 31 Uso del nodo sucesor Seleccionemos el nodo sucesor. El sucesor de un nodo con un subárbol derecho será el primer nodo first() de dicho subárbol. Si reemplazamos el nodo eliminado por su sucesor, se cumplirán todas las condiciones de orden. Pero, qué ocurre con los hijos del sucesor? El sucesor de un nodo con dos hijos puede tener, como mucho, un hijo (a la derecha). Si tuviera un subárbol izquierdo, el nodo no podría ser el sucesor, ya que los miembros del subárbol izquierdo seguirían al nodo eliminado pero precederían al sucesor. Como el sucesor puede tener, como mucho, un subárbol, podemos mover el sucesor hacia arriba para reemplazar el nodo que queremos eliminar y volver a enlazar su subárbol derecho (si existe) como en el segundo caso mostrado anteriormente
17 delete(), buscar sucesor first() del subárbol derecho 33 delete(), reemplazar sucesor
18 delete(), reemplazar sucesor delete(), reemplazar sucesor
19 Eficacia de la búsqueda binaria Parece intuitivo pensar que las operaciones básicas del árbol binario de búsqueda deberían requerir un tiempo O(h), donde h es la altura del árbol. Pero se deduce que la altura de un árbol binario equilibrado es, aprox., log 2 (n), donde n es el número de elementos si el árbol permanece equilibrado. Se puede demostrar que, si las claves se insertan aleatoriamente en un árbol binario de búsqueda, esta condición se cumplirá y que el árbol permanecerá lo suficientemente equilibrado para que la hora de búsqueda y de inserción sea aproximadamente O(log n). 37 Equilibrio del árbol No obstante, existen algunos casos extremadamente simples y comunes en los que las claves no se insertan en orden aleatorio. Considere qué ocurriría si inserta claves en un árbol de búsqueda desde una lista ordenada. El árbol adoptará una forma degenerada equivalente a la de la lista de origen, y las horas de búsqueda e inserción disminuirán a O(n). Hay muchas variantes de árboles, p.ej., árboles rojo-negro, árboles AVL, árboles B, que intentan solucionar este problema reequilibrando el árbol una vez concluidas las operaciones que lo desequilibran
20 Claves insertadas en orden
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
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
Á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
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
Á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,
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
Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,
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
Clase 31. Hashing (Dispersión) Motivación
Clase 31 Hashing (Dispersión) Motivación Podemos realizar una búsqueda en un tiempo mejor que O( lg n )? La operación de memoria de un ordenador lo realiza en mucho menos tiempo: toma una clave (la dirección
Á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
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada
Á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
ÁRBOLES GENERALES Y Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN.. CONSTRUCCIÓN.. ÁRBOLES 2-3-4. ÁRBOLES
Clase 33. Marco para las colecciones de Java. Historia
Clase 33 Marco para las colecciones de Java Historia En la versión original del kit de desarrollo de Java, JDK 1.0, los desarrolladores contaban con muy pocas estructuras de datos. Éstas eran: Vector Stack:
Grados Ing. Inf. y Mat. Inf. Julio 2014 Algoritmos y Estructura de Datos Página 1 de 6
Grados Ing. Inf. y Mat. Inf. Julio 201 Algoritmos y Estructura de Datos Página 1 de 6 Algoritmos y Estructura de Datos: Examen Julio (Solución) Grados Ing. Inf. y Mat. Inf. Julio 201 Departamento de Lenguajes,
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
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
Colecciones. Nadjet Bouayad-Agha Programación 2007
Colecciones Nadjet Bouayad-Agha Programación 2007 ArrayList Un ArrayList es un array dinámico. No tiene restricciones de capacidad. Su tamaño se ajusta de forma dinámica. Constructor por defecto: new ArrayList().
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
Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2
Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3
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
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
Á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
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
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
Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE
Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE 1. PARA QUÉ SIRVE ESTA APLICACIÓN? 2. QUIÉN PUEDE HACER USO DE ELLA? 3. CÓMO SE UTILIZA? 1. PARA QUE SIRVE ESTA APLICACIÓN? El objeto
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión
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
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
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
Programación de sistemas Árboles
Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto
Á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
Pruebas de unidad con JUnit
Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011
EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando
SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler
Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,
Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)
Patrones de diseño Patrón básico Handler Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de diseño Introducción Objetivos: Diseño específico para el problema, pero general para
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
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
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
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
Configuración factura electrónica. construsyc instasyc
Configuración factura electrónica construsyc instasyc Facturación electrónica Según la propia definición de la Agencia Tributaria, la factura electrónica es un documento tributario generado por medios
Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011
Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento
á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
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
Ejercicios - Persistencia en Android: ficheros y SQLite
Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Introducción FACULTAD DE INGENIERÍA. Ordenación
Introducción Uno de los procedimientos más comunes y útiles en el procesamiento de datos, es la clasificación u ordenación de los mismos. Se considera ordenar al proceso de reorganizar un conjunto dado
Consultas con combinaciones
UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden
Modulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
AGRUPA P R OBJET E OS 1
AGRUPAR OBJETOS 1 Son objetos que pueden almacenar un número arbitrario de objetos. Para formar colecciones usaremos la clase ArrayList. Para poder utilizar dicha clase habrá que importar el paquete java.util,
PROCEDIMIENTOS DE TÍTULOS. Para solicitar los títulos al finalizar determinadas enseñanzas es preciso seguir un proceso en la aplicación Plumier XXI.
PROCEDIMIENTOS DE TÍTULOS Para solicitar los títulos al finalizar determinadas enseñanzas es preciso seguir un proceso en la aplicación Plumier XXI. EVALUACIÓN Cuando se ha cursado el último curso de una
Capitulo 6. Como echarle el muerto a alguien.
Capitulo 6 Como echarle el muerto a alguien. Una de las cosas más importantes en una programación es tener un sistema que permite echarle el muerto a alguien. Dicho de manera elegante, el sistema debe
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 [email protected] Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases
Curso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Servicio Webmail. La fibra no tiene competencia
Servicio Webmail La fibra no tiene competencia Contenido 1. INTERFAZ WEBMAIL 3 2. BARRA SUPERIOR 3 3. CORREO 3 3.1. Barra de herramientas de correo 4 3.2. Sección carpetas de correo 9 3.3. Sección de contenidos
Introducción a la Programación Orientada a Objetos
Introducción a la Programación Orientada a Objetos El paradigma imperativo. En un programa se tienen una serie de variables con las cuales operamos y modificamos mediante sentencias y funciones para producir
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
INDICE. 1. Introducción... 4. 2. El panel Entities view... 5. 3. El panel grafico... 6. 4. Barra de botones... 6. 4.1. Botones de Behavior...
MANUAL DE USUARIO INDICE 1. Introducción... 4 2. El panel Entities view... 5 3. El panel grafico... 6 4. Barra de botones... 6 4.1. Botones de Behavior... 7 4.2. Botones de In-agents... 8 4.3. Botones
Colecciones de Java LSUB. 17 de febrero de 2016 GSYC
Colecciones de Java LSUB GSYC 17 de febrero de 2016 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
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
Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el C.
EJERCICIO GUIADO. JAVA: VARIABLES GLOBALES Variables Globales / Propiedades de la Clase Las propiedades de la clase en java es el equivalente a las variables globales en lenguajes estructurados como el
Cómo gestionar menús en Drupal 7
Cómo gestionar menús en Drupal 7 Los menús en Drupal son unas herramientas muy poderosas porqué proporcionan maneras para que los visitantes de nuestro sitio puedan llegar a páginas específicas. Estos
COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC
TITULO: COMPROBACIONES BÁSICAS PARA EL USO DE FIRMA EN EL RTC RESUMEN: La idea de este documento es mostrar una serie de acciones y ayudas básicas para intentar determinar y solucionar problemas en la
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
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
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.
Prof. Dr. Paul Bustamante
Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: AGENDA TELEFÓNICA (4.0 PTOS.)...1 3. EJERCICIO 2:
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í
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Diferenciabilidad. Definición 1 (Función diferenciable). Cálculo. Segundo parcial. Curso 2004-2005
Univ. de Alcalá de Henares Ingeniería de Telecomunicación Cálculo. Segundo parcial. Curso 2004-2005 Diferenciabilidad. 1. Definición de función diferenciable Después del estudio de los ites de funciones
Programación en Java. Programación en OO
Programación en OO Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase,
SESION5-OPERACIONES CON DIAPOSITIVAS
Objetivo: El alumno aprenderá a insertar, copiar, duplicar mover y eliminar s para crear sus presentaciones en PowerPoint. Introducción: Cuando creamos una presentación es indispensable saber cómo manejar
Con esta nueva versión, si un artículo que está incluido dentro de un Paquete de Ventas tiene precio 0,00, significará gratis.
NOVEDADES Y MEJORAS Continuando con nuestra política de mejora, innovación y desarrollo, le presentamos la nueva versión 9.50 de datahotel que se enriquece con nuevas funcionalidades que aportan soluciones
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
CÓMO AÑADIR UN FORMULARIO NUEVO O MODIFICAR EL DE CONTACTO DE LA WEB
CÓMO AÑADIR UN FORMULARIO NUEVO O MODIFICAR EL DE CONTACTO DE LA WEB En este manual trataremos de modificar el formulario de contacto que hay en la web y que está debajo de la cabecera de la página. También
Capitulo VII. Editor de Mapa de Tareas. Como hemos hablado en los capítulos anteriores, sabemos que parte del éxito
Capitulo VII Editor de Mapa de Tareas. Como hemos hablado en los capítulos anteriores, sabemos que parte del éxito que puede tener un ambiente de aprendizaje, consiste en el impacto que de primera instancia
Poder Judicial de Costa Rica
Poder Judicial de Costa Rica Sistema de Gestión en línea Versión 3.2.0.0 Manual de Usuario PODER JUDICIAL Autor: Dep. Tecnología de la Información Tabla de contenido Sistema de Gestión en Línea, Consulta
Ejercicio 1 (3 puntos).-
URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que
Manual básico de Outlook Express
Manual básico de Outlook Express INDICE 1. Elementos básicos a. Crear un correo nuevo. b. Enviar y recibir correo. c. Direcciones. d. Buscar en correos. 2. Utilidades a. Cómo adjuntar archivos. b. Insertar
Ingeniería en Informática
Departamento de Informática Universidad Carlos III de Madrid Ingeniería en Informática Aprendizaje Automático Junio 2007 Normas generales del examen El tiempo para realizar el examen es de 3 horas No se
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
Á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
1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)
1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los
BREVE MANUAL DE SOLVER
BREVE MANUAL DE SOLVER PROFESOR: DAVID LAHOZ ARNEDO PROGRAMACIÓN LINEAL Definición: Un problema se define de programación lineal si se busca calcular el máximo o el mínimo de una función lineal, la relación
port@firmas V.2.3.1 Manual de Portafirmas V.2.3.1
Manual de Portafirmas V.2.3.1 1 1.- Introducción 2.- Acceso 3.- Interfaz 4.- Bandejas de peticiones 5.- Etiquetas 6.- Búsquedas 7.- Petición de firma 8.- Redactar petición 9.- Firma 10.- Devolución de
Plantillas Office. Manual de usuario Versión 1.1
Manual de usuario Para comprender y seguir este manual es necesario: Disponer del fichero lasolucion50.exe Asegurarse de trabajar con la versión 5.0.0.7 o superior. Para comprobar que versión esta utilizando
Centro de Capacitación en Informática
Combinación de funciones y fórmulas =SI(Y(...)...) o =Si(O(...)...) En secciones anteriores vimos que la función SI() debía cumplir una condición, como por ejemplo, controlar si en una celda determinada
Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows
Qué es Recuperación? Recuperación del Panel de control proporciona varias opciones que pueden ayudarle a recuperar el equipo de un error grave. Nota Antes de usar Recuperación, puede probar primero uno
Patrones para persistencia (I) Ingeniería del Software II
Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura
Manual de uso. Manual de uso - citanet 1
Manual de uso Manual de uso - citanet 1 1. Requisitos previos a la instalación... 3 2. Primer inicio de la aplicación.... 3 2.1. Pantalla de inicio de sesión.... 3 2.2. Datos de la empresa y configuración
9. Objetos y clases. 9.1. Clases
Programación orientada a objetos con Java 103 9. Objetos y clases Objetivos: a) Presentar el concepto de objeto, clase, atributo, método e instancia b) Interpretar el código fuente de una aplicación Java
Trabajos de Ampliación. Bases de datos NoSQL.
BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos
Primer Parcial Septiembre 5 de 2009
Primer Parcial Septiembre 5 de 2009 Algoritmos y Lenguajes II Reglas del juego Tal como se le dijo antes, durante este examen usted no puede pedir ABSOLUTAMENTE nada prestado a sus compañeros, ni hablar
Tema 3. Test Driven Development
Tema 3. Test Driven Development Ejercicios Resueltos Ejercicio 01. Desarrolle mediante TDD una implementación del algoritmo de la Criba de Eratóstenes para calcular la lista de los números primos desde
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)
Práctica sobre compartición de instancias remotas.
Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta
