Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso 03-04
Curso 03-04
Pila, LIFO (Last In Fisrt Out) estructura de datos en la cual el acceso est limitado al elemento ms recientemente insertado. Cola, FIFO (First In First Out) permite acceder al elemento ms antiguo.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 3
Arrays en Java
Se definen y utilizan con el operador de indexacin corchetes [ ] Es un objeto ms su identificador es una referencia. Arrays dinmicos, cuando llamamos al constructor decidimos el tamao. length, miembro intrnseco, slo se puede consultar, indica cuntos elementos hay en el array. Siempre se controlan los rangos.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 4
Curso 03-04
Segunda forma:
Ejemplo CompType.java
Si tenemos que ordenar una clase que no implementa comparable o no debemos emplear este tipo de comparacin. Crear una clase separada que implementa la interfaz Comparator. Se debe implementar el mtodo compare()
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos Ejemplo Reverse.java 9
Object pop()
Devuelve y borra el elemento ms recientemente insertado.
Object top()
Devuelve el elemento ms recientemente insertado.
boolean estaVacia()
Comprueba si la pila est vaca.
void vaciar()
Vaca la pila.
Interfaz Pila.java Curso 03-04 Teora de la programacin (TP) Estructuras de Datos
DsTools
10
Object extraer()
Devuelve y borra el elemento ms antiguo de la cola.
Object verPrimero()
Devuelve el elemento ms antiguo de la cola.
boolean estaVacia()
Comprueba si la cola est vaca.
void vaciar()
Vaca la cola.
Interfaz Cola.java Curso 03-04 Teora de la programacin (TP) Estructuras de Datos
DsTools
11
Listas
Lista, es una coleccin de elementos de informacin dispuestos en un cierto orden. El nmero de elementos no suele estar fijado, ni suele estar limitado por anticipado. Lista enlazada, los elementos se almacenan de forma no contigua, en vez de un vector de posiciones consecutivas.
DsTools
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 12
Operaciones de Collection
System.out.println(), visualizar coleccin. add(), aadir un elemento. contains(), comprueba si existe un elemento. isEmpty(), comprueba si est vaco. iterator(), devuelve un iterador. size(), devuelve el nmero de elementos del contenedor. remove(), elimina un elemento del contenedor.
Cola de prioridad
Estructura de datos que permite guardar elementos ordenador de menor a mayor. Acceder rpidamente al elemento menor de una coleccin y poder extraerlo. Por qu no utilizar un rbol binario de bsqueda?
rboles binarios innecesariamente potentes. Rendimiento pobre en el caso peor. Requieren almacenar dos referencias en cada nodo.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 16
Cola de prioridad
void insertar(Comparable x)
Inserta un nuevo elemento en la cola.
Comparable extraer()
Devuelve y borra el elemento menor de la cola.
Comparable buscarMin()
Devuelve el elemento menor de la cola.
boolean estaLlena()
Comprueba si la cola est llena.
boolean estaVacia()
Comprueba si la cola est vaca.
void vaciar()
Vaca la cola.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos
DsTools
Interfaz ColaPrioridad.java 17
Resumen
Estructura Arrays Acceso A cualquier elemento: a[i] O(1) Al ms reciente: extraer() O(1) Al ms antiguo: extraer() O(1) A cualquier elemento: O(n) Al menor: buscarMin() O(1) extraer() O(log n)
Teora de la programacin (TP) Estructuras de Datos
Otras caractersticas De tamao fijo. Se complican las operaciones de insercin y borrado. Slo insertar y extraer el ms reciente. Slo insertar y extraer el ms antiguo. Las operaciones de insercin y borrado son sencillas. insertar() O(1) en promedio, O(log n) en el caso peor.
18
Colas de prioridad
Curso 03-04
rboles
Un rbol est formado por un conjunto de nodos y un conjunto de aristas que conectan pares de nodos, de forma que se obtiene una estructura jerrquica. Un rbol tiene las siguientes caractersticas:
Un nodo es distinguido como la raz. Todo nodo c, excepto la raz, est conectado por medio de una arista a un nico nodo p. p es el padre de c, y c es uno de los hijos de p. Hay un nico camino desde la raz a cada nodo. El nmero de aristas que deben atravesarse es la longitud del camino.
DsTools
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 19
Grafos (I)
Un grafo, es un conjunto de nodos unidos por un conjunto de lneas o flechas.
Grafos dirigidos, lo nodo estn unidos mediante flechas llamadas aristas. Grafos no dirigidos, los nodos estn unidos mediante lneas sin indicacin de direccin, tambin se llaman aristas.
En los dos tipos, las secuencias de aristas pueden formar caminos y ciclos.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 20
Grafos (II)
Un grafo es conexo si se puede llegar desde cualquier nodo hasta cualquier otro siguiendo una secuencia de aristas, independientemente del sentido. Un grafo es fuertemente conexo si se puede pasar desde cualquier nodo hasta cualquier otro siguiendo una secuencia de aristas, respetando el sentido de las flechas. Formalmente un grafo es una pareja G=<N,A> en donde N es un conjunto de nodos y A es un DsTools conjunto de aristas.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 21
Bibliografa
Weiss, Mark Allen. Estructuras de datos en Java. Addison Wesley 2000. [Cap 6. Estructuras de datos]. Brassard, G.; Bratley, P. Fundamentos de Alforitmia. Prentice Hall 1997. [Cap 5. Estructuras de datos]. Bruce Eckel. Piensa en Java. 2 edicin. Prentice Hall 2002. [Cap. 9 y Cap. 4 final] Arnold, Gosling, Holmes. El Lenguaje de Programacin Java. 3 edicin. Addison Wesley 2001.
Curso 03-04 Teora de la programacin (TP) Estructuras de Datos 22