ESTRUCTURAS DE ALMACENAMIENTO<br />Ciclo de Grado Superior D.A.W.<br />
Introducción<br />Arrays en Java<br />Operaciones con arrays<br />Operaciones con pilas<br />Operaciones con colas<br />Li...
Necesidad de las estructuras de datos<br />Los algoritmos requieren una representación apropiada de los datos para lograr ...
Matrices, pilas y colas<br />Matriz (array), estructura de datos que consta de un número fijo de elementos del mismo tipo....
Arrays en java<br />Se definen y utilizan con el operador de indexación  corchetes [ ]<br />Es un objeto más,  su identifi...
Arrays multidimensionales en java<br />Declaración: int [][]<br />Construcción: int [][] matriz= new int [3][4];<br />Acce...
Operaciones con arrays<br />java.util.Arrays, clase que implementa un conjunto de métodos estáticos que permiten realizar ...
Diseño de la ordenación de arrays<br />Problema de escribir código de ordenación genérico: debemos llevar a cabo comparaci...
Diseño de la ordenación de arrays<br />Podemos “separar los elementos que cambian de los que permanecen igual”, el algorit...
Comparación para la ordenación<br />Primera forma de proporcionar esto:<br />La clase a ordenar debe implementar la interf...
Operaciones con pilas<br />voidpush(Object x)<br />Inserta un nuevo elemento en la pila, si no está llena<br />Object pop(...
Operaciones con colas<br />void insertar(Object x)<br />Inserta un nuevo elemento en la cola.<br />Object extraer()<br />D...
Cola de prioridad (I)<br />Estructura de datos que permite guardar elementos ordenador de menor a mayor.<br />Acceder rápi...
Cola de prioridad (II)<br />void insertar(Comparable x)<br />Inserta un nuevo elemento en la cola.<br />Comparable extraer...
Listas<br />Lista, es una colección de elementos de información dispuestos en un cierto orden. El número de elementos no s...
Soporte de java para listas<br />En Java se puede trabajar con el concepto colección (Collection): grupo de elementos indi...
Operaciones de Collection<br />System.out.println(), visualizar colección.<br />add(), añadir un elemento.<br />contains()...
Recorrido de una colección utilizando un iterador<br />importjava.util.*;<br />publicclassPruebaIteradorLista {<br />publi...
Resumen<br />
Upcoming SlideShare
Loading in …5
×

DAW - Estructuras de almacenamiento

2,522 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,522
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

DAW - Estructuras de almacenamiento

  1. 1. ESTRUCTURAS DE ALMACENAMIENTO<br />Ciclo de Grado Superior D.A.W.<br />
  2. 2. Introducción<br />Arrays en Java<br />Operaciones con arrays<br />Operaciones con pilas<br />Operaciones con colas<br />Listas<br />Collection<br />Estructuras de almacenamiento<br />
  3. 3. Necesidad de las estructuras de datos<br />Los algoritmos requieren una representación apropiada de los datos para lograr ser eficientes.<br />Esta representación junto con las operaciones permitidas se llama estructura de datos.<br />1. INTRODUCCIÓN<br />
  4. 4. Matrices, pilas y colas<br />Matriz (array), estructura de datos que consta de un número fijo de elementos del mismo tipo.<br />Vectores, matrices unidimensionales.<br />Pila, LIFO (Last In Fisrt Out) estructura de datos en la cual el acceso está limitado al elemento más recientemente insertado.<br />Cola, FIFO (First In First Out) permiteacceder al elemento más antiguo.<br />1. INTRODUCCIÓN<br />
  5. 5. Arrays en java<br />Se definen y utilizan con el operador de indexación corchetes [ ]<br />Es un objeto más, su identificador es una referencia.<br />Arrays dinámicos, cuando llamamos al constructor decidimos el tamaño.<br />length, miembro intrínseco, sólo se puede consultar, indica cuántos elementos hay en el array.<br /> Siempre se controlan los rangos<br />2. ARRAYS EN JAVA<br />
  6. 6. Arrays multidimensionales en java<br />Declaración: int [][]<br />Construcción: int [][] matriz= new int [3][4];<br />Acceso: matriz[2][0]<br />Devolver un array: String[][]<br />conjuntoCadenas()<br />2. ARRAYS EN JAVA<br />
  7. 7. Operaciones con arrays<br />java.util.Arrays, clase que implementa un conjunto de métodos estáticos que permiten realizar operaciones con arrays:<br />equals(), compara la igualdad de dos arrays.<br />fill(), rellena un array con un valor.<br />sort(), ordena un array.<br />binarySearch(), busca un dato en un array ordenado.<br />asList(), convierte el array en un contenedor tipo lista de Java.<br />System.arraycopy(), copia datos de un array en otro, realiza copia superficial.<br />3. OPERACIONES CON ARRAYS<br />
  8. 8. Diseño de la ordenación de arrays<br />Problema de escribir código de ordenación genérico: debemos llevar a cabo comparaciones basadas en el tipo del objeto.<br />Podemos escribir código de ordenación para cada tipo no se puede reutilizar.<br />Algoritmo de ordenación coches:<br /> […]<br />if (coche1.cilindrada() > coche2.cilindrada())<br /> […]<br />Algoritmo de ordenación aviones:<br /> […]<br />if (avion1.verPasajeros() > avion2.verPasajeros())<br /> […]<br />3. OPERACIONES CON ARRAYS<br />
  9. 9. Diseño de la ordenación de arrays<br />Podemos “separar los elementos que cambian de los que permanecen igual”, el algoritmo general de ordenación permanece igual, lo que cambia es la forma de comparar los objetos.<br />La parte del código que varía la encapsulamos en la propia clase.<br />Algoritmo de ordenación genérico:<br />[…]<br />if (Comparable1.comparar(Comparable2)>0)<br />[…]<br />3. OPERACIONES CON ARRAYS<br />
  10. 10. Comparación para la ordenación<br />Primera forma de proporcionar esto:<br />La clase a ordenar debe implementar la interfaz java.lang.Comparable.<br />Interfaz con un único método compareTo()<br />Segunda forma:<br />Si tenemos que ordenar una clase que no implementa comparable o no debemos emplear este tipo de comparación.<br />Crear una clase separada que implementa la interfaz Comparator.<br />Se debe implementar el método compare()<br />3. OPERACIONES CON ARRAYS<br />
  11. 11. Operaciones con pilas<br />voidpush(Object x)<br />Inserta un nuevo elemento en la pila, si no está llena<br />Object pop()<br />Devuelve y borra el elemento más recientemente insertado.<br />Object top()<br />Devuelve el elemento más recientemente insertado.<br />booleanestaVacia()<br />Comprueba si la pila está vacía.<br />void vaciar()<br />Vacía la pila.<br />4. OPERACIONES CON PILAS<br />
  12. 12. Operaciones con colas<br />void insertar(Object x)<br />Inserta un nuevo elemento en la cola.<br />Object extraer()<br />Devuelve y borra el elemento más antiguo de la cola.<br />ObjectverPrimero()<br />Devuelve el elemento más antiguo de la cola.<br />booleanestaVacia()<br />Comprueba si la cola está vacía.<br />void vaciar()<br />Vacía la cola.<br />5. OPERACIONES CON COLAS<br />
  13. 13. Cola de prioridad (I)<br />Estructura de datos que permite guardar elementos ordenador de menor a mayor.<br />Acceder rápidamente al elemento menor de una colección y poder extraerlo.<br />¿Por qué no utilizar un árbol binario de búsqueda?<br />Árboles binarios innecesariamente potentes.<br />Rendimiento pobre en el caso peor.<br />Requieren almacenar dos referencias en cada nodo.<br />5. OPERACIONES CON COLAS<br />
  14. 14. Cola de prioridad (II)<br />void insertar(Comparable x)<br />Inserta un nuevo elemento en la cola.<br />Comparable extraer()<br />Devuelve y borra el elemento menor de la cola.<br />Comparable buscarMin()<br />Devuelve el elemento menor de la cola.<br />booleanestaLlena()<br />Comprueba si la cola está llena.<br />booleanestaVacia()<br />Comprueba si la cola está vacía.<br />void vaciar()<br />Vacía la cola.<br />5. OPERACIONES CON COLAS<br />
  15. 15. Listas<br />Lista, es una colección de elementos de información dispuestos en un cierto orden. El número de elementos no suele estar fijado, ni suele estar limitado por anticipado.<br />Lista enlazada, los elementos se almacenan de forma no contigua, en vez de un vector de posiciones consecutivas.<br />6. LISTAS<br />
  16. 16. Soporte de java para listas<br />En Java se puede trabajar con el concepto colección (Collection): grupo de elementos individuales, a los que se puede aplicar alguna regla.<br />Una lista (List) es un tipo de colección que contiene elementos en una secuencia concreta.<br />Java incluye dos clases que implementan el interfaz List: ArrayList y LinkedList.<br />6. LISTAS<br />
  17. 17. Operaciones de Collection<br />System.out.println(), visualizar colección.<br />add(), añadir un elemento.<br />contains(), comprueba si existe un elemento.<br />isEmpty(), comprueba si está vacío.<br />iterator(), devuelve un iterador.<br />size(), devuelve el número de elementos del contenedor.<br />remove(), elimina un elemento del ontenedor.<br />Clase auxiliar que permite realizar más operaciones: java.util.Collections.<br />7. COLLECTION<br />
  18. 18. Recorrido de una colección utilizando un iterador<br />importjava.util.*;<br />publicclassPruebaIteradorLista {<br />public static void main(String[] args) {<br />List l= new ArrayList();<br />l.add(new Integer(8));<br />l.add(new Integer(3));<br />…<br />l.add(new Integer(1));<br />Integerent= null;<br />Iterator i= l.iterator();<br />while (i.hasNext())<br />{<br />ent= (Integer)i.next();<br />System.out.println(ent);<br />}<br />}<br />}<br />7. COLLECTION<br />
  19. 19. Resumen<br />

×