LISTA
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.
public class Nodo
{
private String informacion;
private Nodo enlace;
public Nodo(String x)
{
informacion=x;
enlace= null;
}
public Nodo (String x, Nodo n)
{
informacion=x;
enlace=n;
}
public String getInformacion()
{
return informacion;
}
public void setInformacion(String
informacion) {
this.informacion = informacion;
}
public Nodo getEnlace() {
return enlace;
}
public void setEnlace(Nodo
enlace) {
this.enlace = enlace;
}
}
import
javax.swing.JOptionPane;
public class Lista
{
private Nodo
inicio;
Lista()
{
inicio=null;
}
public Nodo
getInicio() {
return
inicio;
}
public void
setInicio(Nodo inicio) {
this.inicio
= inicio;
}
public Lista insertaInicio(String informacion)
{
Nodo nuevo;
nuevo=new
Nodo(informacion);
//crear un nuevo nodo(en la parte de enlace debe estar vacio,
es decir null y en la parte de información el dato que le vamos a dar por
ejemplo luis).CREA UN NUEVO NODO(ELEMENTO).
nuevo.setEnlace(getInicio());
//en el campo de enlace nuevo se ingresa el
valor que tenga inicio por ejemplo 0f10 ylo isertamos en el nuevo enlace.ENLAZA
NUEVO AL FRENTE DE LA LISTA
setInicio(nuevo);
//al nuevo nodo le ingresamos una direccion de memoria
de tipo exagesimal es decir numero de cuatro digitos ejemplo:9412 y ese valor
le ingresamos a inicio.MUEVE INICIO Y APUNTA EL NUEVO NODO
return
this;//DEVUELVE LA REFERENCIA DEL OBJETO.
}
public Lista insertaFinal(String informacion)
{
Nodo ultimo;
ultimo=inicio;
while(ultimo.getEnlace()!=null)
{
ultimo=ultimo.getEnlace();
}
ultimo.setEnlace(new Nodo(informacion));
return this;
}
public Lista
insertaAntes(String informacion, String ref)
{
Nodo
nuevos,actual,anterior=null;
boolean
esta=true;
actual=inicio;
while(!actual.getInformacion().equals(ref)&&esta)
{
if(actual.getEnlace()!=null)
{
anterior=actual;
actual=actual.getEnlace();
}
else
{
esta=false;
}
}
if(esta)
{
if(inicio==actual)
{
nuevos=new Nodo
(informacion,inicio);
inicio=nuevos;
}
else
{
nuevos=new
Nodo(informacion,actual);
anterior.setEnlace(nuevos);
}
}
return this;
}
public Lista insertaDespues(String informacion,String
ref)
{
Nodo nuevo,
actual=null;
boolean
esta=true;
actual=inicio;
while(actual.getInformacion().equals(ref)&&
esta)
{
if(actual.getEnlace()!=null)
actual=actual.getEnlace();
else
esta=false;
}
if(esta)
{
nuevo=new
Nodo(informacion,actual.getEnlace());
actual.setEnlace(nuevo);
}
return this;
}
public void
recorrer() {
String cadena="";
Nodo q=inicio;
int i=1;
while(q!=null)
{
cadena+="\n nodos"+1+q.getInformacion();
q=q.getEnlace();
i++;
}
JOptionPane.showMessageDialog(null,cadena);
}
public String eliminaAlInicio()
{
Nodo x= inicio;
inicio=
inicio.getEnlace(); // Barrido logico
return x.getInformacion();
}
public String eliminaFinal()
{
Nodo ultimo,
anterior= null;
ultimo= inicio;
// Empieza el rrecorrido
while
(ultimo.getEnlace()!= null)
{
anterior=
ultimo;
ultimo=
ultimo.getEnlace();
}
anterior.setEnlace(null); // Borrado logico
return ultimo.getInformacion();
}
public String eliminaX(String x)
{
Nodo actual,
anterior=null;
boolean
esta=true;actual=inicio;
while(!actual.getInformacion().equals(x)&&esta)
{
if(actual.getEnlace()!=null)
{
anterior=actual;
actual.setEnlace(actual.getEnlace());
}
else
esta=false;
}
if(esta)
{
anterior.setEnlace(actual.getEnlace());
return actual.getInformacion();
}
else
return"";
}
public static void
main(String[]args){
Lista obj=new Lista();
}
}
conclusión
La conclusión que podemos dar de lista enlazada es
fundamental, y esta puede ser usada para implementar otras estructuras de
datos. Utilizamos nodos, en esta se guardan los datos anteriores o posteriores.
La listas enlazadas permiten insertar y eliminar nodos en cualquier punto de la
lista, pero no permiten un acceso aleatorio. Existen muchos tipos de listas
enlazadas.
No hay comentarios.:
Publicar un comentario