Unidad 3
Listas
Alumno: Jorge Magdaleno Rodela
S.I. 401
Definición de listas en java
Una lista es una secuencia de elementos dispuesto en un cierto orden, en
la que cada elemento tiene como mucho un predecesor y un sucesor. El
número de elementos de la lista no suele estar fijado, ni suele estar limitado
por anticipado. Representaremos la estructura de datos de forma gráfica
con cajas y flechas. Las cajas son los elementos y las flechas simbolizan el
orden de los elementos.
› La estructura de datos deberá permitirnos determinar cuál es el primer elemento y el último de la
estructura, cuál es su predecesor y su sucesor (si existen de cualquier elemento dado). Cada uno de
los elementos de información suele denominarse nodo.
Características:
1- Las listas enlazadas permiten inserciones y eliminación
de nodos en cualquier punto de la lista en tiempo constante,
pero no permiten un acceso aleatorio.
2- Existen diferentes tipos de listas enlazadas: Listas
enlazadas simples, listas doblemente enlazadas, listas
enlazadas circulares y listas enlazadas doblemente
circulares.
3- Pueden ser implementadas en muchos lenguajes.
Lenguajes tales como Lisp y Scheme tiene estructuras de
datos ya construidas, junto con operaciones para acceder a
las listas enlazadas. Lenguajes imperativos u orientados a
objetos tales como C o C++ y Java, respectivamente,
disponen de referencias para crear listas enlazadas.
Terminología
Asignación dinámica de memoria
Para crear y mantener estructuras dinámicas de datos se
requiere la asignación dinámica de memoria; la
habilidad
para que un programa obtenga más espacio de memoria
en tiempo de ejecución, para almacenar nuevos
nodos y para liberar el espacio que ya no se necesita.
Recuerde que los programas de Java no liberan
explícitamente
la memoria asignada en forma dinámica. En vez de
ello,Java realiza la recolección automática de
basura en los
objetos que ya no son referenciados en un programa.
Terminología
› Listas Enlazadas:
Una lista enlazada es una colección lineal
(es decir, una secuencia) de objetos de una
clase autoreferenciada, conocidos como
nodos, que están conectados por enlaces
de referencia; es por ello que se utiliza el
término lista “enlazada”. Por lo general, un
programa accede a una lista enlazada
mediante una referencia al primer nodo en
a lista. El programa accede a cada nodo
subsiguiente a través de la referencia de
enlace almacenada en el nodo anterior. Por
convención, la referencia de enlace en el
último nodo de una lista se establece en
null. Los datos se almacenan en forma
dinámica en una lista enlazada; el
programa crea cada nodo según sea
necesario. Un nodo puede contener datos
de cualquier tipo, incluyendo referencias a
objetos de otras clases.
3.2 Tipos de listas:
Simples
› El último nodo de la lista no apunta a ningún a ninguno (null).
› Se accede a la lista mediante el primer nodo o también llamado
inicio de la lista.
› No tiene acceso aleatorio es decir para acceder a un valor se debe
recorrer toda la lista.
Listas bidireccionales
(doblemente enlazadas).
› Una lista se dice que es bidireccional o doblemente enlazada cuando, para cada uno de
los elementos que la forman, existe una referencia al elemento anterior y otra al
elemento siguiente dentro de la estructura. Gracias a esta estructura, se puede recorrer
la lista en ambos sentidos. En la implementación de este tipo de listas hay que
considerar dos situaciones
› particulares:
› El elemento anterior al primero será el elemento nulo.
› El elemento siguiente al último será también el elemento nulo
Circulares:
› Listas circulares (anillos).
Se entiende por lista circular aquella en la que el último elemento de la lista
tiene definido un enlace al primer elemento de la lista. Desde un punto de vista
físico una lista circular por propia naturaleza no tiene principio ni fin. No
obstante, desde el punto de vista lógico, a referencia a la lista establece cómo
determinar la finalización de su recorrido tanto iterativo como recursivo.
3.3 Construcción y operaciones de listas:
Sintaxis
La clase ArrayList en Java, es una clase que permite almacenar datos en
memoria de forma similar a los Arrays, con la ventaja de que el numero de
elementos que almacena, lo hace de forma dinámica, es decir, que no es
necesario declarar su tamaño como pasa con los Arrays. Para todos aquellos que
hayáis estudiado en alguna asignatura las estructuras de datos de las Pilas,
Colas, Listas, Arboles (AVL, B, B+, B*) etc.
Operaciones:
Inserción
en una
lista
vacía
Inserción al inicio de la Lista
Inserción al final de la Lista
Inserción en otra parte de la lista
Inserción en otra parte de la lista
Eliminación de un elemento de la lista
Eliminación en otra parte de la lista

Unidad 3 Listas Java

  • 1.
    Unidad 3 Listas Alumno: JorgeMagdaleno Rodela S.I. 401
  • 2.
    Definición de listasen java Una lista es una secuencia de elementos dispuesto en un cierto orden, en la que cada elemento tiene como mucho un predecesor y un sucesor. El número de elementos de la lista no suele estar fijado, ni suele estar limitado por anticipado. Representaremos la estructura de datos de forma gráfica con cajas y flechas. Las cajas son los elementos y las flechas simbolizan el orden de los elementos. › La estructura de datos deberá permitirnos determinar cuál es el primer elemento y el último de la estructura, cuál es su predecesor y su sucesor (si existen de cualquier elemento dado). Cada uno de los elementos de información suele denominarse nodo.
  • 3.
    Características: 1- Las listasenlazadas permiten inserciones y eliminación de nodos en cualquier punto de la lista en tiempo constante, pero no permiten un acceso aleatorio. 2- Existen diferentes tipos de listas enlazadas: Listas enlazadas simples, listas doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente circulares. 3- Pueden ser implementadas en muchos lenguajes. Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con operaciones para acceder a las listas enlazadas. Lenguajes imperativos u orientados a objetos tales como C o C++ y Java, respectivamente, disponen de referencias para crear listas enlazadas.
  • 4.
    Terminología Asignación dinámica dememoria Para crear y mantener estructuras dinámicas de datos se requiere la asignación dinámica de memoria; la habilidad para que un programa obtenga más espacio de memoria en tiempo de ejecución, para almacenar nuevos nodos y para liberar el espacio que ya no se necesita. Recuerde que los programas de Java no liberan explícitamente la memoria asignada en forma dinámica. En vez de ello,Java realiza la recolección automática de basura en los objetos que ya no son referenciados en un programa.
  • 5.
    Terminología › Listas Enlazadas: Unalista enlazada es una colección lineal (es decir, una secuencia) de objetos de una clase autoreferenciada, conocidos como nodos, que están conectados por enlaces de referencia; es por ello que se utiliza el término lista “enlazada”. Por lo general, un programa accede a una lista enlazada mediante una referencia al primer nodo en a lista. El programa accede a cada nodo subsiguiente a través de la referencia de enlace almacenada en el nodo anterior. Por convención, la referencia de enlace en el último nodo de una lista se establece en null. Los datos se almacenan en forma dinámica en una lista enlazada; el programa crea cada nodo según sea necesario. Un nodo puede contener datos de cualquier tipo, incluyendo referencias a objetos de otras clases.
  • 6.
    3.2 Tipos delistas: Simples › El último nodo de la lista no apunta a ningún a ninguno (null). › Se accede a la lista mediante el primer nodo o también llamado inicio de la lista. › No tiene acceso aleatorio es decir para acceder a un valor se debe recorrer toda la lista.
  • 7.
    Listas bidireccionales (doblemente enlazadas). ›Una lista se dice que es bidireccional o doblemente enlazada cuando, para cada uno de los elementos que la forman, existe una referencia al elemento anterior y otra al elemento siguiente dentro de la estructura. Gracias a esta estructura, se puede recorrer la lista en ambos sentidos. En la implementación de este tipo de listas hay que considerar dos situaciones › particulares: › El elemento anterior al primero será el elemento nulo. › El elemento siguiente al último será también el elemento nulo
  • 8.
    Circulares: › Listas circulares(anillos). Se entiende por lista circular aquella en la que el último elemento de la lista tiene definido un enlace al primer elemento de la lista. Desde un punto de vista físico una lista circular por propia naturaleza no tiene principio ni fin. No obstante, desde el punto de vista lógico, a referencia a la lista establece cómo determinar la finalización de su recorrido tanto iterativo como recursivo.
  • 9.
    3.3 Construcción yoperaciones de listas: Sintaxis La clase ArrayList en Java, es una clase que permite almacenar datos en memoria de forma similar a los Arrays, con la ventaja de que el numero de elementos que almacena, lo hace de forma dinámica, es decir, que no es necesario declarar su tamaño como pasa con los Arrays. Para todos aquellos que hayáis estudiado en alguna asignatura las estructuras de datos de las Pilas, Colas, Listas, Arboles (AVL, B, B+, B*) etc.
  • 10.
  • 11.
  • 12.
  • 13.
    Inserción en otraparte de la lista
  • 14.
    Inserción en otraparte de la lista
  • 15.
    Eliminación de unelemento de la lista
  • 16.
    Eliminación en otraparte de la lista