clase iii lenguajes visuales. java 2marzo 2007godio - lópez - cancela estructuras de datos...

23
Clase III Clase III Lenguajes Visuales Lenguajes Visuales

Upload: nicolao-echevarria

Post on 10-Feb-2015

18 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Clase IIIClase III

Lenguajes VisualesLenguajes Visuales

Page 2: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

22Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Estructuras de datosEstructuras de datos

Estructuras estáticas.Estructuras estáticas. Arreglos simples.Arreglos simples. Arreglos de arreglos.Arreglos de arreglos.

Estructuras dinámicas.Estructuras dinámicas. Colecciones.Colecciones.

Sin elementos duplicados.Sin elementos duplicados.

Con elementos duplicados.Con elementos duplicados.

Listas ordenadas.Listas ordenadas.

Diccionarios.Diccionarios.

Arboles.Arboles.

Page 3: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

33Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Estructuras estáticasEstructuras estáticasLos arreglos son estructuras que permiten contener varios valores Los arreglos son estructuras que permiten contener varios valores del mismo tipo.del mismo tipo.

La longitud del arreglo (cantidad de valores) se establece en el La longitud del arreglo (cantidad de valores) se establece en el momento de la declaración de la estructura.momento de la declaración de la estructura.

Una vez creada la estructura es de longitud fija.Una vez creada la estructura es de longitud fija.

En los arreglos multidimensionales cada elemento de la dimensión En los arreglos multidimensionales cada elemento de la dimensión es una referencia a otro arreglo con su propia dimensión.es una referencia a otro arreglo con su propia dimensión.

El concepto de matrices está representado por estructuras de El concepto de matrices está representado por estructuras de arreglos de arreglos en los cuales cada elemento de la primera arreglos de arreglos en los cuales cada elemento de la primera dimensión es una referencia a otro arreglo, todos de la misma dimensión es una referencia a otro arreglo, todos de la misma longitud.longitud.

Page 4: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

44Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Arreglos de una dimensión.Arreglos de una dimensión. int[ ] arr1;int[ ] arr1; // declara a un arreglo de int.// declara a un arreglo de int.

arr1 = new int[10]; arr1 = new int[10]; // dimensiona un arreglo de 10 int.// dimensiona un arreglo de 10 int.

int[10] arr2 = new int[10];int[10] arr2 = new int[10]; // declara y dimensiona.// declara y dimensiona.

int[ ] arr3 = { 7, 2, 14, 8 }; int[ ] arr3 = { 7, 2, 14, 8 }; // declara, dimensiona e // declara, dimensiona e inicializainicializa

Arreglos de arreglos.Arreglos de arreglos. int[ ][ ] mat1; int[ ][ ] mat1; mat1 = new int[4][3];mat1 = new int[4][3]; int[2][ ] mat2; int[2][ ] mat2; mat2[0] = new int[4];mat2[0] = new int[4]; mat2[1] = new int[3];mat2[1] = new int[3]; int[ ][ ] mat3 = { { 3, 8 }, {12, 1, 7 }, { 19 } };int[ ][ ] mat3 = { { 3, 8 }, {12, 1, 7 }, { 19 } };

Declaración de arreglos.Declaración de arreglos.

Page 5: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

55Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Recorrido de ArreglosRecorrido de ArreglosLa propiedad length indica la cantidad de elementos que un arreglo posee en una La propiedad length indica la cantidad de elementos que un arreglo posee en una determinada dimensión:determinada dimensión:

arreglo.length ;arreglo.length ;

Cada elemento se referencia subindicando la posición del arreglo:Cada elemento se referencia subindicando la posición del arreglo: arreglo[ posición] ;arreglo[ posición] ;

Ejemplo del recorrido de todos los elementos de un arreglo:Ejemplo del recorrido de todos los elementos de un arreglo:for (int i = 0 ; i < arreglo.length ; i++ )for (int i = 0 ; i < arreglo.length ; i++ ){{

arreglo[ i ] …arreglo[ i ] …}}

Ejemplo del recorrido de todos los elementos de un arreglo de arreglos:Ejemplo del recorrido de todos los elementos de un arreglo de arreglos:for (int i = 0 ; i < arreglo.length ; i++ )for (int i = 0 ; i < arreglo.length ; i++ ){{

for (int j = 0 ; j < arreglo[ i ].length ; j++ )for (int j = 0 ; j < arreglo[ i ].length ; j++ ){{

arreglo[ i ] [ j ] …arreglo[ i ] [ j ] …}}

}}

Page 6: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

66Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Arreglos de objetosArreglos de objetosSe declaran y dimensionan de la misma forma que los Se declaran y dimensionan de la misma forma que los de tipos por valor.de tipos por valor.

Cada elemento debe instanciarse.Cada elemento debe instanciarse.Object[ ] objetos = new Object[ 3 ];Object[ ] objetos = new Object[ 3 ];objetos[0] = new String(“abc”) ;objetos[0] = new String(“abc”) ;objetos[1] = new Integer( 10 ) ;objetos[1] = new Integer( 10 ) ;objetos[2] = new Double( 30.25 );objetos[2] = new Double( 30.25 );

Se recorren de la misma forma.Se recorren de la misma forma.for (int i = 0 ; i < objetos.lenght ; i++)for (int i = 0 ; i < objetos.lenght ; i++){{

Object o = objetos[ i ] ;Object o = objetos[ i ] ;}}

Page 7: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

77Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

GenéricosGenéricosSon tipos parametrizados que permiten definir colecciones para Son tipos parametrizados que permiten definir colecciones para cualquier el tipo de dato.cualquier el tipo de dato.

Sin utilizar parámetros:Sin utilizar parámetros:List nombres = new ArrayList();List nombres = new ArrayList();

nombres.add(“Juan”);nombres.add(“Juan”);

nombres.add(“Ana”);nombres.add(“Ana”);

……

Object o = nombres.get(0);Object o = nombres.get(0);

String s = (String) o;String s = (String) o;

El elemento debe ser convertido El elemento debe ser convertido a String al ser todos Objects.a String al ser todos Objects.

Utilizando parámetrosUtilizando parámetrosList<String> nombres = new ArrayList <String>();List<String> nombres = new ArrayList <String>();

Se define una lista de StringsSe define una lista de Stringsnombres.add(“Juan”);nombres.add(“Juan”);

nombre.add(“Ana”);nombre.add(“Ana”);

……

String s = nombres.get(0);String s = nombres.get(0);

No es necesario convertirlos al ser No es necesario convertirlos al ser todos Strings.todos Strings.

El tipo de dato del genérico se indica El tipo de dato del genérico se indica cuando se declara la estructura.cuando se declara la estructura.

Page 8: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

88Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

GenéricosGenéricos

Identificación y tipos de parámetros:Identificación y tipos de parámetros:

E : E : parámetro que identifica al elemento de la colección.parámetro que identifica al elemento de la colección. K : K : parámetro que identifica al elemento clave de la colección.parámetro que identifica al elemento clave de la colección. V : V : parámetro que identifica al valor que apunta la clave.parámetro que identifica al valor que apunta la clave. T : T : parámetro que identifica un conjunto de valores.parámetro que identifica un conjunto de valores. . . .. . .

Son utilizados en la definición de una clase que Son utilizados en la definición de una clase que permita instanciarse con tipos genéricos.permita instanciarse con tipos genéricos.

Page 9: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

99Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Definición de clases genéricasDefinición de clases genéricas Indicar en la declaración de la clase el tipo de Indicar en la declaración de la clase el tipo de

genérico que reconoce:genérico que reconoce:class Lista<E>class Lista<E>class Diccionario<K,V>class Diccionario<K,V>

Indicar el tipo de dato genérico a los miembros de la Indicar el tipo de dato genérico a los miembros de la clase.clase.

private E item;private E item; public E getItem() { return item; }public E getItem() { return item; } public void setItem(E item) { this.item = item; }public void setItem(E item) { this.item = item; }

private K clave;private K clave; private V valor;private V valor; public K getClave() { return clave; }public K getClave() { return clave; } public V getValor() { return valor; }public V getValor() { return valor; }

GenéricosGenéricos

Page 10: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1010Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

ColeccionesColeccionesEl manejo que realiza la VM de las colecciones se El manejo que realiza la VM de las colecciones se representa mediante la siguiente arquitectura:representa mediante la siguiente arquitectura:

Interfaces.Interfaces.Son los tipos abstractos que representan la colección.Son los tipos abstractos que representan la colección.

Implementaciones.Implementaciones.Son las implementaciones concretas de la interfaz de la colección.Son las implementaciones concretas de la interfaz de la colección.Definen estructuras reusables.Definen estructuras reusables.

Algoritmos.Algoritmos.Métodos depurados para ejecutar eficientemente un proceso, como los Métodos depurados para ejecutar eficientemente un proceso, como los

algoritmos de búsqueda y ordenamiento.algoritmos de búsqueda y ordenamiento.Estos son polimórficos, para poder ser adoptados por distintas Estos son polimórficos, para poder ser adoptados por distintas

colecciones.colecciones.

Page 11: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1111Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Colecciones - InterfacesColecciones - Interfaces

Jerarquía de las Interfaces

Page 12: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1212Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

interface Collectioninterface CollectionEs la ruta de todas las colecciones.Es la ruta de todas las colecciones.Representa un grupo de objetos conocidos como Representa un grupo de objetos conocidos como elementos.elementos.

Define el siguiente comportamiento (código parcial):Define el siguiente comportamiento (código parcial):public interface Collection<E> extends Iterable<E>public interface Collection<E> extends Iterable<E> { {

int size(); int size(); boolean isEmpty(); boolean isEmpty(); boolean contains(Object element); boolean contains(Object element); boolean add(E element); boolean add(E element); boolean remove(Object element); boolean remove(Object element); Iterator iterator(); Iterator iterator(); void clear();void clear();. . .. . .

} }

Page 13: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1313Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Recorrido de una colecciónRecorrido de una colección

Una colección puede ser Una colección puede ser recorrida:recorrida:

Bloque for-each.Bloque for-each. Objeto Iterator.Objeto Iterator.

Bloque for-each es una Bloque for-each es una particularidad del bloque for.particularidad del bloque for.Sintaxis:Sintaxis:for ( elemento : colección)for ( elemento : colección)……for ( Object o : coleccion )for ( Object o : coleccion ){{

o.toString( )o.toString( )}}……

Las colecciones permiten la Las colecciones permiten la implementación de un Iterador.implementación de un Iterador.La interface Iterator<E> define La interface Iterator<E> define el siguiente comportamiento:el siguiente comportamiento:public interface Iterator<E> {public interface Iterator<E> { boolean hasNext( ); boolean hasNext( ); E next( ); E next( ); void remove( ); void remove( ); }}

Implementación de un iterador:Implementación de un iterador:for ( Iterator i = c.iterator( ); for ( Iterator i = c.iterator( );

i.hasNext( ); ) i.hasNext( ); )

{{

System.out.println(i.next());System.out.println(i.next());

}}

Page 14: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1414Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

interface interface MapMapRepresenta a los diccionarios.Representa a los diccionarios.No permiten elementos duplicados.No permiten elementos duplicados.Define una clave que mapea al elemento.Define una clave que mapea al elemento.

Define el siguiente comportamiento (código parcial):Define el siguiente comportamiento (código parcial):public interface Map public interface Map {{

V put(K key, V value); V put(K key, V value); V get(Object key); V get(Object key); V remove(Object key); V remove(Object key); boolean containsKey(Object key); boolean containsKey(Object key); boolean containsValue(Object value); boolean containsValue(Object value); int size(); int size(); boolean isEmpty();boolean isEmpty(); void clear(); void clear(); . . .. . .

}}

Page 15: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1515Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Colecciones - Colecciones - ImplementacionesImplementaciones

Las interfaces de las colecciones se implementan en las Las interfaces de las colecciones se implementan en las siguientes clases: (lista parcial)siguientes clases: (lista parcial)

interface Setinterface Setclass HashSetclass HashSet

class TreeSetclass TreeSet

interface Listinterface Listclass ArrayListclass ArrayList

class LinkedListclass LinkedList

interface Mapinterface Mapclass HashMapclass HashMap

class TreeMapclass TreeMap

Page 16: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1616Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Manejo de una List Manejo de una List (implementando ArrayList)(implementando ArrayList)

Declaración de una lista de elementos enteros.Declaración de una lista de elementos enteros.

List<Integer> lista = new ArrayList<Integer>( );List<Integer> lista = new ArrayList<Integer>( );

Agregar un elemento al final de la lista.Agregar un elemento al final de la lista.

lista.add( 20 );lista.add( 20 );

Insertar un elemento en determinada posición.Insertar un elemento en determinada posición.

lista.add( 0, 6 );lista.add( 0, 6 );

Buscar un elemento en la lista.Buscar un elemento en la lista.

If ( lista.contains( 20 ) ) If ( lista.contains( 20 ) ) // existe// existe

Eliminar un elemento en la lista.Eliminar un elemento en la lista.

lista.remove( 20 ) ;lista.remove( 20 ) ;

Eliminar todos los elementos en la lista.Eliminar todos los elementos en la lista.

lista.clear( ) ;lista.clear( ) ;

Obtener un elemento en determinada posición.Obtener un elemento en determinada posición.

lista.get( posicion ) ;lista.get( posicion ) ;

Page 17: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1717Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Manejo de un Set Manejo de un Set (implementando HashSet)(implementando HashSet)

Declaración de un set de elementos enteros.Declaración de un set de elementos enteros.Set<Integer> set = new HashSet<Integer>( );Set<Integer> set = new HashSet<Integer>( );

Agregar un elemento al final del set.Agregar un elemento al final del set.set.add( 20 );set.add( 20 );

Buscar un elemento en el set.Buscar un elemento en el set.If ( set.contains( 20 ) ) If ( set.contains( 20 ) ) // existe// existe

Eliminar un elemento del set.Eliminar un elemento del set.set.remove( 20 ) ;set.remove( 20 ) ;

Eliminar todos los elementos del set.Eliminar todos los elementos del set.If ( ! Set.isEmpty( ) ) If ( ! Set.isEmpty( ) ) set.clear( ) ;set.clear( ) ;

Asociar un Iterador a la colección set.Asociar un Iterador a la colección set.Iterator i = set.iterator( ) ;Iterator i = set.iterator( ) ;

Page 18: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1818Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Manejo de un Map Manejo de un Map (implementando TreeMap)(implementando TreeMap)

Declaración de un TreeMap.Declaración de un TreeMap.SortedMap<String,String> map = new TreeMap<String,String>( );SortedMap<String,String> map = new TreeMap<String,String>( );

Agregar un elemento.Agregar un elemento.map.put( “lu”, “Lunes” );map.put( “lu”, “Lunes” );

Buscar un elemento por el valor.Buscar un elemento por el valor.If ( map.containsValue( “Lunes” ) )If ( map.containsValue( “Lunes” ) ) // existe// existe

Buscar un elemento por la clave.Buscar un elemento por la clave.If ( map.containsKey( “lu” ) )If ( map.containsKey( “lu” ) ) // existe// existe

Eliminar un elemento.Eliminar un elemento.map.remove( “lu” );map.remove( “lu” );

Eliminar todos los elementos.Eliminar todos los elementos.map.clear( );map.clear( );

Recorrer un TreeMap.Recorrer un TreeMap.Set keys = map.keySet( );Set keys = map.keySet( ); // obtiene el set de claves// obtiene el set de claves

for ( Iterator i = keys.iterator( ); i.hasNext( ); )for ( Iterator i = keys.iterator( ); i.hasNext( ); ){{

String key = i.next(); String key = i.next(); // obtiene la clave// obtiene la clavemap.get( key );map.get( key ); // obtiene el valor// obtiene el valor

}}

Page 19: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

1919Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Objetos auto referenciadosObjetos auto referenciados

Son los elementos de las estructuras dinámicasSon los elementos de las estructuras dinámicas

Implementación de un OAR:Implementación de un OAR: Definir una clase parametrizada.Definir una clase parametrizada. Debe estar compuesta por:Debe estar compuesta por:

Un item de tipo genérico.Un item de tipo genérico.

Una o mas referencias a objetos de la misma clase.Una o mas referencias a objetos de la misma clase. Definir constructores.Definir constructores. Implementar encapsulamiento.Implementar encapsulamiento.

< E >< E > < E >< E > < E >< E >

Page 20: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

2020Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Objetos auto referenciadosObjetos auto referenciadosLa clase La clase Nodo<E> Nodo<E> define un OARdefine un OAR

Una colección de objetos Una colección de objetos Nodo<E> Nodo<E> puede componer puede componer estructuras de datos simplemente estructuras de datos simplemente enlazadas.enlazadas.

El objeto parametrizado El objeto parametrizado E itemE item define la utilización de genéricos define la utilización de genéricos para las estructuras que tengan para las estructuras que tengan que implementarlo.que implementarlo.

La referencia La referencia siguientesiguiente de tipo de tipo Nodo<E> Nodo<E> determina a otro objeto determina a otro objeto de la misma clase como miembro de la misma clase como miembro de ésta.de ésta.

Los restantes métodos conforman Los restantes métodos conforman el encapsulamiento.el encapsulamiento.

publicpublic classclass Nodo<E> { Nodo<E> { privateprivate E item; E item; privateprivate Nodo<E> sigiente; Nodo<E> sigiente; publicpublic Nodo(E item) { Nodo(E item) { thisthis.item = item;.item = item; siguiente = siguiente = nullnull;; }} publicpublic Nodo(E item, Nodo<E> sig) Nodo(E item, Nodo<E> sig)

{{ thisthis.item = item;.item = item; thisthis.siguiente = sig;.siguiente = sig; }} publicpublic E getItem() { E getItem() { returnreturn item; item; }}

// métodos get y set// métodos get y set}}

Page 21: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

2121Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Una estructura dinámica encadena sus valores con Una estructura dinámica encadena sus valores con objetos auto referenciados.objetos auto referenciados.Estructuras básicas:Estructuras básicas:

PilaPila ColaCola Lista simpleLista simple

Estructuras complejasEstructuras complejas Lista doblemente enlazadaLista doblemente enlazada DiccionarioDiccionario Arbol binarioArbol binario

Estructuras avanzadasEstructuras avanzadas Arbol balanceadoArbol balanceado Cola de prioridadesCola de prioridades Arboles disjuntosArboles disjuntos

Estructuras auto referenciadasEstructuras auto referenciadas

Page 22: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

2222Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Estructuras auto referenciadasEstructuras auto referenciadasPila:Pila:

Estado actual:Estado actual:

Agregar: Agregar:

EliminarEliminar

Código:Código:Declaración del Nodo<E>Declaración del Nodo<E>private Nodo<E> nodo;private Nodo<E> nodo;

AgregarAgregarpublic void insertar(E item) {public void insertar(E item) { nodo = new Nodo<E>nodo = new Nodo<E>

( item, ( item, nodo );nodo );

}}

EliminaciónEliminaciónpublic E eliminar() {public E eliminar() { … … E item = nodo.getItem();E item = nodo.getItem(); nodo = nodo.getSiguiente();nodo = nodo.getSiguiente(); return item;return item;}}

12 8

44 12 8nodo

nodo

12 8nodo 44

Page 23: Clase III Lenguajes Visuales. java 2Marzo 2007Godio - López - Cancela Estructuras de datos Estructuras estáticas. Arreglos simples. Arreglos simples

Leng

uaje

s V

isua

les

Leng

uaje

s V

isua

les

jjavaava

2323Marzo 2007Marzo 2007 Godio - López - CancelaGodio - López - Cancela

Estructuras auto referenciadasEstructuras auto referenciadasLa clase Nodo<E> define al OAR.La clase Nodo<E> define al OAR.La interface Ipila<E> define el TDA.La interface Ipila<E> define el TDA.La clase Pila resuelve la EAR.La clase Pila resuelve la EAR.La clase EstructuraVaciaException define la excepción que debe La clase EstructuraVaciaException define la excepción que debe lanzarse cuando no se pueda aplicar el método por encontrarse la lanzarse cuando no se pueda aplicar el método por encontrarse la estructura vacía.estructura vacía.

Nodo<E>

- item : E- sig : Nodo<E>

IPila<E>

+ vacia( ) : boolean+ obtener( ) throws Ex : E + eliminar( ) throws Ex : E+ insertar(E item) : void

Pila<E>

- tope : Nodo<E>

Exception

EstructuraVaciaException

{