- Objetivos
- Desarrollo del código
- Concepto de listas simples
enlazadas - Página Web
- Conclusiones
- 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
nodospublic 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
cabecerapublic 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
listaif(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
listapublic 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
listapublic static nodo quitar_centro(nodo
cab){int c =
contar(cab); //cuentar el numero de nodos de la
listaif(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
listapublic 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.
Página
Web
Esta es la primera parte de la pagina web:
en donde se encuentra la ilustración en flash de los
códigos realizados.
Creación de la lista y los
nodos.
Listado de la lista de nodos.
Agregar la cabecera al principio de la
lista.
Agrega un nodo al centro de la lista de
nodos.
Agrega un nodo al final de la lista de
nodos.
Quita la cabecera de la lista de
nodos.
Quita un nodo del centro de la lista de
nodos.
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