unidad n v listas enlazadas n v – listas enlazadas lista enlazadas es una...

Download Unidad N V Listas Enlazadas N V – Listas Enlazadas Lista Enlazadas Es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que cada elemento se conecta

Post on 23-Feb-2018

215 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Instituto Universitario Politcnico

    Santiago Mario

    Unidad N V Listas Enlazadas

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Lista Enlazadas

    Es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que cada

    elemento se conecta al siguiente elemento por enlace o referencia. La idea bsica

    consiste en construir una lista cuyos elementos, llamados nodos, se componen de dos partes

    o campos: la primera parte o campo contiene la informacin y es, por consiguiente, un valor

    de un tipo genrico (denominado Dato, TipoElemento, Infor, etc.), y la segunda parte o

    campo es una referencia (enlace o sgte) que apunta al siguiente elemento de la lista.

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Lista Enlazadas

    Elaborado por: Ing. Vctor Valencia.

    en

    Diferentes representaciones grficas del ltimo nodo de una lista

    en en null

  • Unidad N V Listas Enlazadas

    Clasificacin de las Listas Enlazadas

    Listas Simplemente Enlazadas, cada nodo contiene un nico enlace que conecta ese nodo al

    nodo siguiente o nodo sucesor. La lista es eficiente en recorridos directos (adelante).

    Listas Doblemente Enlazadas, cada nodo contiene dos enlace, uno a su nodo predecesor y

    el otro a su nodo sucesor. La lista es eficiente tanto en recorrido directo (adelante) como en

    recorrido inverso (atrs).

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Clasificacin de las Listas Enlazadas

    Lista Circular Simplemente Enlazada, es aquella en la que el ltimo elemento (cola de la

    lista) se enlaza al primer elemento (cabeza de la lista), de tal modo que la lista puede ser

    recorrida de modo circular (en anillo).

    Lista Circular Doblemente Enlazada, tiene las caractersticas de las lista doblemente

    enlazadas y listas circulares. El ltimo nodo se enlaza o apunta a la cabeza de la lista, todos

    los nodos enlazan al nodo anterior y al siguiente.

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Operaciones en Listas Enlazadas

    Una lista enlazada requiere unos controles para la gestin de los elementos contenidos en

    ellas. Estos controles se manifiestan en forma de operaciones que tendrn las siguientes

    funciones:

    Definicin de la clase Nodo y referencia a Nodo.

    Inicializacin o creacin.

    Insertar elementos en una lista.

    Eliminar elementos de una lista.

    Buscar elementos de una lista (comprobar la existencia de elementos en una lista).

    Recorrer una lista enlazada (visitar cada nodo de la lista).

    Comprobar si la lista est vaca.

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Pasos para la construccin de una lista

    La creacin de una lista enlazada entraa la definicin de clases, que pueden

    descomponerse en los siguientes pasos:

    1. Definir la clase Nodo (opcionalmente, definir la clase Elemento).

    2. Definir la clase Lista, con la variable instancia referencia a Nodo cabeza o primero.

    3. Definir el mtodo constructor de Lista que inicialice primero a null, lista vaca.

    4. Definir el mtodo CrearLista(), de tal forma que cree iterativamente el primer elemento

    (primero) y los elementos sucesivos de una lista enlazada simplemente.

    5. Repetir hasta que no haya ms entrada para el elemento.

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Definicin de un nodo en Java

    Una lista enlazada se compone de una serie de nodos enlazados mediante referencias. Cada

    nodo es una combinacin de dos partes: un tipo de dato (entero, real, doble, carcter o

    referencias) y un enlace (referencia) al siguiente nodo. En Java se puede definir un nuevo

    tipo de dato, una clase, para contener las dos partes citadas.

    Class Nodo{

    int info;

    Nodo siguiente;

    public Nodo(int dato){

    info = dato;

    siguiente = null;

    }

    }

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Definicin de un nodo en Java

    Dado que los tipo de datos que se puede incluir en una lista pueden ser de cualquier tipo

    (enteros, dobles, caracteres o cualquier objeto), con el fin de que el tipo de dato de cada

    nodo se pueda cambiar con facilidad, se puede definir una clase Elemento como una

    generalizacin del tipo de dato de cada campo, en cuyo caso se utiliza una referencia a

    Elemento dentro de la estructura de nodo, como se muestra a continuacin:

    Class Elemento{

    //

    }

    Class Nodo{

    Elemento info;

    Nodo siguiente;

    }

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Definicin de un nodo en Java

    Package ListaEnteros;

    Public class Nodo{

    int dato;

    Nodo enlace;

    public Nodo(int x){

    dato = x;

    enlace = null;

    }

    public Nodo(int x, Nodo n){

    dato = x;

    enlace = n;

    }

    }

    Elaborado por: Ing. Vctor Valencia.

    El segundo constructor de Nodo enlaza el nodo creado con otro.

  • Unidad N V Listas Enlazadas

    Definicin de una Lista en Java

    El siguiente paso para construir la lista es definir la clase Lista con la variable instancia

    primero que apuntar al primer elemento de la lista:

    Public class Lista{

    Private Nodo primero;

    public Lista(){

    primero = null;

    }

    //..

    }

    Elaborado por: Ing. Vctor Valencia.

    La referencia primero (puede tener cualquier otro nombre representativo) se ha inicializado a un valor nulo, lo que implica que la lista est vaca (no tiene elementos).

  • Unidad N V Listas Enlazadas

    Definicin del mtodo CrearLista en Java

    En el mtodo CrearLista() se aaden elementos a la lista, para ello hay que crear un nodo

    con un valor correspondiente al campo dato y asignar dicho nodo a primero:

    Public Lista CrearLista(){

    primero = new Nodo(19);

    Elaborado por: Ing. Vctor Valencia.

    La referencia primero apunta al nuevo elemento, que se inicializa a 19. El campo enlace

    del nuevo elemento toma el valor nulo, por no haber un nodo siguiente.

    19 null

    Primero

  • Unidad N V Listas Enlazadas

    Definicin del mtodo CrearLista en Java

    La operacin de crear un nodo se puede hacer un mtodo al que se pasa el valor del campo

    dato y del campo enlace. Si ahora se desea aadir un nuevo elemento con un valor 61, y

    situarlo en el primer lugar de la lista, se escribe simplemente:

    Primero = new Nodo(61, primero);

    Elaborado por: Ing. Vctor Valencia.

    61 19 Null

    Primero

  • Unidad N V Listas Enlazadas

    Ejercicio: Creacin iterativa de una lista

    Public Lista CrearLista(){

    Primero = null;

    for(int i = 0; i

  • Unidad N V Listas Enlazadas

    Ejercicio: Insertar elemento a la cabeza de la lista

    public Lista InsertarCabezaLista(int dato){

    Nodo nuevo;

    nuevo=new Nodo(dato);

    nuevo.siguiente = primero;

    primero = nuevo;

    return this;

    }

    Elaborado por: Ing. Vctor Valencia.

  • Unidad N V Listas Enlazadas

    Ejercicio: Mostrar los elementos de una lista

    public void MostrarLista(){

    Nodo n;

    n = primero;

    System.out.println("Los valores que contiene la lista son:");

    while(n != null){

    System.out.println(n.info);

    n = n.siguiente;

    }

    }

    Elaborado por: Ing. Vctor Valencia.

  • Fuentes

    Joyanes, L., Zahonero, I. (2002). Programacin en Java 2. Madrid: McGrawHill.

    Elaborado por: Ing. Vctor Valencia.

Recommended

View more >