Monografias.com > Computación
Descargar Imprimir Comentar Ver trabajos relacionados

Listas Simples Enlazadas




Enviado por Ronald Catari



  1. Objetivos
  2. Desarrollo del código
  3. Concepto de listas simples
    enlazadas
  4. Página Web
  5. Conclusiones
  6. Referencias

Objetivos

1.1 Objetivo General

Aprender y enseñar los diferentes
ejemplos de listas enlazadas en java. Mediante una pagina web
interactiva con animaciones.

  • Objetivo Especifico

  • Facilitar a los estudiantes el
    aprendizaje de los códigos desarrollados sobre listas
    enlazadas.

  • Proporcionar a través de la
    pagina web y video la explicación del funcionamiento
    del código de lista enlazadas.

Desarrollo del
código

  • package listas_enlazadas;

  • import java.io.*;

  • import java.util.Scanner;

  • import
    javax.swing.JOptionPane;

  • public class Listas_enlazadas
    {

  •         public
    static class nodo

  •         {int
    dato;

  •         nodo
    sgte;

  •         }

  •     public static
    void main(String args []) throws IOException

  •         {

  •         nodo
    cabA = null;

  •         BufferedReader
    bf;

  •         int
    opc;

  •         bf =
    new BufferedReader(new
    InputStreamReader(System.in));

  •         do

  •             {  
    System.out.println(" MENU: n"

  •                  +
    "1.- CREAR UN NODOn"

  •                  +
    "2.- LA LISTA DE NODOS n"

  •                  +
    "3.- AGREGAR A CABECERAn"

  •                  +
    "4.- AGREGAR AL CENTROn"

  •                  +
    "5.- AGREGAR AL FINALn"

  •                  +
    "6.- QUITAR CABECERAn"

  •                  +
    "7.- QUITAR CENTROn"

  •                  +
    "8.- QUITAR ULTIMO NODOn"

  •                  +
    "0.- SALIR"

  •                   );

  •  

  •  

  •                 opc
    = Integer.parseInt(bf.readLine());

  •                 switch(opc)

  •                     {

  •                     case
    1:cabA=crear_nuevo(cabA);break;

  •                     case
    2:cabA=listado(cabA);break;

  •                     case
    3:crear_nuevo(cabA);break;

  •                     case
    4:add_centro(cabA);break;

  •                     case
    5:add_final(cabA);break;

  •                     case
    6:quitar_cab(cabA);break;

  •                     case
    7:quitar_centro(cabA);break;

  •                     case
    8:quitar_ultimo(cabA);break;

  •                     default:System.out.println("LA
    OPCION NO EXISTE");break;

  •                     }

  •             }while(opc!=
    0);

  •         }

  • //PRIMER
    CASO…………………………………….

  • //crear nuevo nodo

  •     public static
    nodo crear_nuevo(){

  •         nodo z
    = new nodo();

  •         z.dato
    = leer("Ingrese dato: ");

  •         z.sgte
    = null;

  •         return
    z;

  • }//agregar un nuevo nodo

  •     public static
    nodo add(nodo cab){

  •         nodo
    nuevo;

  •         nuevo =
    crear_nuevo();

  •         nuevo.sgte
    = cab;

  •         return
    nuevo;

  •     }

  • //SEGUNDO
    CASO……………………………………..

  • // mostrar toda la lista de
    nodos

  •     public static
    void listado(nodo cab){

  •         while(cab
    != null){

  •             System.out.println(cab.dato);

  •             cab=cab.sgte;

  •         }

  •     }

  • //TERCER
    CASO…………………………………….

  • //crear nuevo nodo

  •     public static
    nodo crear_nuevo(){

  •         nodo z
    = new nodo();

  •         z.dato
    = leer("Ingrese dato: ");

  •         z.sgte
    = null;

  •         return
    z;

  • }//agregar un nodo a la
    cabecera

  •     public static
    nodo add(nodo cab){

  •         nodo
    nuevo;

  •         nuevo =
    crear_nuevo();

  •         nuevo.sgte
    = cab;

  •         return
    nuevo;

  •     }

  • //CUARTO
    CASO…………………………………….

  • //agregar nodo al centro

  • public static void add_centro(nodo
    cab){

  •     nodo
    nuevo;

  •     int c =
    contar(cab);//cuenta el numero de nodos de la
    lista

  •     if(c>=2){

  •         nuevo =
    new nodo();

  •         nuevo.dato
    = leer("ingree dato:");

  •         for(int
    i =1;i<(n/2);i++)

  •             cab
    = cab.sgte;

  •         nuevo.sgte
    = cab.sgte;

  •         cab.sgte
    = nuevo;

  •     }

  • }

  • //QUINTO
    CASO……………………………………

  • /agregar un nodo al final de la
    lista

  •     public static
    nodo add_final(nodo cab){

  •         nodo
    nuevo,copia;

  •         nuevo =
    new nodo();

  •         nuevo.dato
    = leer("Ingrese dato: ");

  •         nuevo.sgte
    = null;

  •         if(cab
    == null)

  •             cab
    = nuevo;

  •         else{

  •             copia
    = cab;

  •             while(copia.sgte!=null){

  •                 copia
    = copia.sgte;

  •             }

  •             copia.sgte
    = nuevo;

  •         }

  •         return
    cab;

  •     }

  • //SEXTO
    CASO……………………………………

  • //quitar nodo de la cabecera

  • public static nodo quitar_cab(nodo
    cab){

  •     return
    cab.sgte;

  • }

  • //SEPTIMO
    CASO…………………………………

  • //quitar nodo del centro de la
    lista

  • public static nodo quitar_centro(nodo
    cab){

  •     int c =
    contar(cab); //cuentar el numero de nodos de la
    lista

  •     if(cab.sgte==null)

  •         cab =
    null;

  •     else{

  •         if
    (c>=2){

  •             nodo
    copia = cab;

  •             for(int
    i=1;i<(n/2);i++)

  •                 copia
    = copia.sgte;

  •             copia.sgte
    = copia.sgte.sgte;

  •         }

  •     }

  •     return
    cab;

  • }

  • //OCTAVO
    CASO………………………………….

  • //quitar el ultimo nodo de la
    lista

  • public static nodo quitar_ultimo(nodo
    cab){

  •     if(cab.sgte ==
    null)

  •         cab =
    null;

  •     else{

  •         nodo
    copia = cab;

  •         nodo
    aux = null;

  •         while(copia.sgte!=null){

  •             aux
    = copia;

  •             copia
    = copia.sgte;

  •         }

  •         aux.sgte
    = copia.sgte;

  •     }

  •     return
    cab;

  • }

Concepto de
listas simples enlazadas

Una lista enlazada es una de las
estructuras de datos fundamentales, y puede ser usada para
implementar otras estructuras de datos. Consiste en una secuencia
de nodos, en los que se guardan campos de datos arbitrarios y una
o dos referencias, enlaces o punteros al nodo anterior o
posterior. El principal beneficio de las listas enlazadas
respecto a los vectores convencionales es que el orden de los
elementos enlazados puede ser diferente al orden de
almacenamiento en la memoria o el disco, permitiendo que el orden
de recorrido de la lista sea diferente al de almacenamiento. Las
listas enlazadas 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. La lista enlazada básica es
la lista enlazada simple la cual tiene un enlace por nodo. Este
enlace apunta al siguiente nodo (o indica que tiene la
dirección en memoria del siguiente nodo) en la lista, o al
valor NULL o a la lista vacía, si es el último
nodo.

Monografias.com

Página
Web

Monografias.com

Esta es la primera parte de la pagina web:
en donde se encuentra la ilustración en flash de los
códigos realizados.

Monografias.com

Creación de la lista y los
nodos.

Monografias.com

Listado de la lista de nodos.

Monografias.com

Agregar la cabecera al principio de la
lista.

Monografias.com

Agrega un nodo al centro de la lista de
nodos.

Monografias.com

Agrega un nodo al final de la lista de
nodos.

Monografias.com

Quita la cabecera de la lista de
nodos.

Monografias.com

Quita un nodo del centro de la lista de
nodos.

Monografias.com

Quita el último elemento de la lista
de nodos.

Conclusiones

El desarrollo del código fue probado
exitosamente con gran éxito. Aprendiendo el funcionamiento
de los también llamados punteros en java. Esto es un
ejemplo de como se almacenan en memoria y como se los van
creando, agregando y eliminando según el código
realizado.

Referencias

http://www.youtube.com/watch?v=ATpZZr88WRg

http://www.tic-srl.net/estructura_de_datos_15/html_publico/

 

 

Autor:

Ronald Catari

 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter