Tal vez le interese leer también sobre pilas y colas
Definición auspiciada por Wikipedia: 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 denodos, en los que se guardan campos de datos arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior.
Generalmente se usa una lista enlazada cuando no sabemos de antemano en numero de datos u objetos que queremos almacenar; personalmente uso en estos caso como lista un ArrayList.
Humildemente implemento en tres clases una lista sin hace uso de ninguna librería especificada por la sentencia import; espero les guste y les sirva.
//Autor: Rey Salcedo
public class Nodo{
private Object dato;
private Nodo nodo;
public Nodo(){
dato = null;
Nodo nodo = null;
}
public Nodo(Object dato){
this();
this.dato = dato;
}
public void setDato(Object dato){
this.dato = dato;
}
public Object getDato(){
return dato;
}
public void setNodo(Nodo nodo){
this.nodo = nodo;
}
public Nodo getNodo(){
return nodo;
}
}
//Autor: Rey Salcedo
public class Lista{
private Nodo cabecera;
private int tamaño;
public Lista(){
tamaño = 0;
cabecera = new Nodo();
}
public int getTamaño(){
return tamaño;
}
public boolean addDato(Object dato){
Nodo nodoUltimo = getUltimoNodo();
if(dato != null && nodoUltimo != null){
nodoUltimo.setNodo(new Nodo(dato));
tamaño ++;
return true;
}else{
return false;
}
}
private Nodo getUltimoNodo(){
Nodo nodoUltimo = null;
if(cabecera != null){
nodoUltimo = cabecera;
while(nodoUltimo.getNodo() != null){
nodoUltimo = nodoUltimo.getNodo();
}
}
return nodoUltimo;
}
public Object getDato(int pos){
Nodo nodoUltimo = null;
int contador = 0;
Object dato = null;
if(cabecera != null){
nodoUltimo = cabecera;
do{
nodoUltimo = nodoUltimo.getNodo();
if(contador == pos){
dato = nodoUltimo.getDato();
break;
}else{
contador++;
}
}while(nodoUltimo.getNodo() != null);
}
return dato;
}
}
//Autor: Rey Salcedo
public class Main{
public static void main(String []args){
Lista lista = new Lista();
//Adjuntando datos
lista.addDato("Hola");
lista.addDato("mundo");
lista.addDato("aqui");
lista.addDato("estoy");
System.out.println("-------Imprimiendo datos-------");
for(int i = 0;i < lista.getTamaño();i ++){
System.out.println(lista.getDato(i));
}
}
}
Tal vez también te interese: Implementacion de pila y cola.
gracias, voy a checar que tanto me sirve.
ResponderBorrar