Vous êtes sur la page 1sur 6

CUESTIONARIO SOBRE LISTAS ENLAZADAS (MEMORIA DINMICA)

1. Qu es una lista enlazada?


Es una coleccin de elementos (denominados nodos) dispuestos uno a continuacin de otro, cada uno
de ellos conectado al siguiente por un enlace o referencia
2. Qu partes (campos) componen cada nodo de una lista enlazada? Dibuja o pega una
imagen representativa de una lista enlazada y los campos que incluye cada nodo.
Est compuesta por 2 partes, la primera parte contiene la informacin y es, por consiguiente, un valor
de un tipo genrico (denominado Dato, TipoElemento, Info, etc.), y la segunda parte es una referencia
(denominado enlace o sgte) que apunta (enlaza) al siguiente elemento de la lista.

3. Cmo se clasifican las listas enlazadas? Explica brevemente cada tipo.
-Listas simplemente enlazadas. Cada nodo contiene un nico enlace que lo conecta al siguiente nodo o
nodo sucesor.
-Listas doblemente enlazadas. Cada nodo contiene dos enlaces, uno a su nodo predecesor y otro a su
nodo sucesor.
-Lista circular simplemente enlazada. Una lista enlazada simplemente en la que el ltimo elemento
(cola) se enlaza al primer elemento (cabeza) de tal modo que la lista puede ser recorrida de modo
circular (en anillo).
-Lista circular doblemente enlazada. Una lista doblemente enlazada en la que el ltimo elemento se
enlaza al primer elemento y viceversa. Esta lista se puede recorrer de modo circular (en anillo) tanto
en direccin directa (adelante) como inversa (atrs).

4. Qu es una lista vaca y cmo se representa?
Una lista vaca (no contiene nodos), se representa con el puntero cabeza con nulo (null).

5. Por qu decimos que una lista es una estructura de datos dinmica?
El nmero de nodos puede variar rpidamente en un proceso, aumentando por inserciones o
disminuyendo por eliminacin de nodos.
6. Por qu decimos que una lista es una estructura de datos lineal?}
Los elementos de la lista tienen la propiedad de que sus elementos estn ordenados de forma lineal
segn las posiciones que se ocupan en la misma.

7. Cules son las operaciones que generalmente se implementan en el TAD Lista?
Inicializacin o creacin.
Insertar elementos en la lista.
Eliminar elementos de la lista.
Buscar elementos de la lista.
Recorrer la lista enlazada.
Comprobar si la lista est vaca.

8. Escriba en Java la clase Nodo que se utilizar para cada elemento de la Lista. Incluya los
mtodos constructores, getDato(), getEnlace() y setEnlace() de acuerdo al ejemplo 8.2 del
libro indicado para lectura. Escriba junto a cada mtodo una explicacin clara sobre su
funcin (Qu hace?), los tipos de datos que usa, el valor de retorno, etc.

9. Para qu se utilizan las referencias cabeza y cola en una lista enlazada?
Para representar el frente cabeza y el final cola de una lista
10. Qu significa NULL? Para qu se usa en las listas enlazadas?
Una lista vaca (no contiene nodos)





11. Explique paso a paso el algoritmo para insertar un nuevo elemento en la cabeza de la lista.
Incluya esquemas o dibujos para apoyar la explicacin.
Algoritmo
Nodo nuevo;
nuevo = new Nodo(entrada); // asigna un nuevo nodo

El campo enlace del nuevo nodo apunta al nodo primero actual de la lista.
Algoritmo
nuevo.enlace = primero

Se cambia la referencia de primero para que apunte al nodo creado; es decir, primero apunta al mismo
nodo al que apunta nuevo.
Algoritmo
primero = nuevo;
Se cambia la referencia de primero para que apunte al nodo creado; es decir, primero apunta al mismo
nodo al que apunta nuevo.

En este momento, el mtodo de insertar termina su ejecucin, la variable local nuevo desaparece y
slo permanece la referencia al primer nodo de la lista: primero.

12. Explique paso a paso el algoritmo para insertar un nuevo elemento al final (cola) de la lista.
Incluya esquemas o dibujos para apoyar la explicacin.

ultimo.enlace = new Nodo(entrada);
ultimo = ultimo.enlace;
La primera sentencia crea un nodo, inicializando su dato a entrada. El campo enlace del ltimo
nodo queda apuntando al nodo creado y as se enlaza, como nodo final, a la lista y la ltima
sentencia pone la variable ltimo al nuevo ltimo nodo de la lista. La operacin es un mtodo de la
clase Lista.
13. Explique paso a paso el algoritmo para insertar un nuevo elemento entre dos nodos de la
lista. Incluya esquemas o dibujos para apoyar la explicacin.
El algoritmo para la operacin insertar entre dos nodos (n1, n2) requiere las siguientes
Etapas:
Algoritmo
nuevo = new Nodo(entrada);
1. Crear un nodo con el nuevo elemento y el campo enlace a null. La referencia al nodo se asigna a
nuevo.

Algoritmo
nuevo.enlace = anterior.enlace
2. Hacer que el campo enlace del nuevo nodo apunte al nodo n2, ya que el nodo creado se
ubicar justo antes de n2.

3. La variable referencia anterior tiene la direccin del nodo n1, y eso exige hacer que
anterior.enlace apunte al nodo creado.

14. Explique paso a paso el algoritmo para eliminar un elemento de una lista. Incluya esquemas o
dibujos para apoyar la explicacin.
public void eliminar (Elemento entrada)
{
Nodo actual, anterior;
boolean encontrado;

inicializa los apuntadores
actual = primero;
anterior = null;
encontrado = false;

Bsqueda del nodo que contiene el dato. Se ha de obtener la direccin del nodo a eliminar
y la direccin del anterior.
while ((actual != null) && (!encontrado))
{
encontrado = (actual.dato == entrada);
//con objetos: actual.dato.equals(entrada)
if (!encontrado)
{
anterior = actual;
actual = actual.enlace;
}
}
El enlace del nodo anterior que apunte al siguiente nodo del cual se elimina.
if (actual != null)
{
Distingue entre que el nodo sea el cabecera, o del resto de la lista
if (actual == primero)
{
primero = actual.enlace;
}
else
{
anterior.enlace = actual.enlace;
}
actual = null; // no es necesario al ser una variable local
}
} Por ltimo, la memoria ocupada por el nodo se libera. Es el propio sistema el que libera el nodo, al dejar de estar referenciado.
NOTA: Si el nodo a eliminar es el cabeza de la lista (primero), se modifica primero para que tenga la
direccin del siguiente nodo.
15. Explique paso a paso el algoritmo para recorrer (visitar) todos los elementos de una Lista.
Incluya esquemas o dibujos para apoyar la explicacin.

Vous aimerez peut-être aussi