Beruflich Dokumente
Kultur Dokumente
Listas enlazadas
Contenidos
*** Introduccin a los genricos
Estructuras de datos
Listas enlazadas
La clase Node
La clase LinkedList
Con Genricos
List<Integer> list = new ArrayList<Integer>();
list.add(test);
Integer value = list.get(0);
Error en tiempo de compilacin
The method add(Integer) in the type List<Integer> is
not applicable for the arguments (String)
Se detecta a tiempo antes de ejecutar el programa
Errores de compilacin
Estructuras de datos
Abstraccin que representa un conjunto
de datos en un programa con el objetivo
de facilitar su manipulacin
Arrays
Listas enlazadas
Pilas
Colas
Colas dobles
Arrays
Ventajas para el almacenamiento de colecciones
lineales de datos:
Acceso aleatorio: se puede acceder a cualquier posicin
del array en tiempo constante.
Uso eficiente de memoria cuando todas las posiciones
estn ocupadas: por guardarse en posiciones
consecutivas de memoria.
Arrays
Desventajas
Tamao esttico: debe asignarse un tamao al crear el
array, y no se puede cambiar. Da lugar a problemas:
o
Arrays
Desventajas
Ciertas operaciones tienen un coste no ptimo:
o
o
o
10
Ejercicio 1
Crea un array de diez elementos de tipo entero e
inicialzalos todos con el valor 0. Despus inserta
un elemento adicional con valor 1 en la cuarta
posicin del array
11
Listas enlazadas
Secuencia ordenada de nodos donde cada nodo
almacena:
Un dato (informacin)
Una referencia al siguiente nodo
next
next
next
null
12
La clase Node
Uso de genricos para almacenar
informacin de diferentes tipos
{}
Constructor para
inicializar el dato
Node<E> getNext() {}
void setNext(Node<E> next) {}
E getInfo() {}
void setInfo(E info) {}
Mtodos get y set de los atributos
13
Ejercicio 2
Completa el cdigo de la clase Node. Incluye tres
constructores: uno que no recibe informacin para
inicializar ningn atributo; otro que permite
inicializar el atributo info, y otro que permite
inicializar los dos atributos
14
La clase MyLinkedList
public class MyLinkedList<E> {
private Node<E> first;
public MyLinkedList() {}
public
public
public
public
public
public
public
}
15
Insercin al principio
public void insert(E info)
first
null
newNode
null
Insercin al principio
public void insert(E info)
first
newNode
null
Insercin al principio
public void insert(E info)
first
newNode
null
null
null
data
null
data
null
data
previous
null
previous
null
newNode
null
newNode
previous
null
newNode
previous
null
null
data
first
null
data
first
null
previous
first
null
current
first
null
Ejercicio 3
Crea el mtodo
public int numberOfOcurrences(E info),
34
36
Ejercicio 4
Crea una Lista Enlazada de diez elementos de tipo
entero e inicialzalos todos con el valor 0. Despus
inserta un elemento adicional con valor 1 en la
cuarta posicin de la Lista Enlazada. Asume que ya
existen la clase Node y la clase MyLinkedList
tal y como se han programado anteriormente.
37