El documento presenta las clases Nodo y Lista para implementar una lista enlazada en Java. La clase Nodo almacena un objeto de datos y un puntero al siguiente nodo. La clase Lista mantiene un puntero a la cabeza de la lista, métodos para agregar y eliminar nodos, obtener un nodo por su índice, y verificar si la lista está vacía o no. El método main crea una lista y agrega varios elementos para demostrar los métodos de Lista.
1. CLASE NODO
public class Nodo {
public Object dato;
public Nodo siguiente; // se crea el
puntero
//constructor para insertar al final
public Nodo (Object d){
this.dato= d;
this.siguiente=null;
}
public Object obtenerValor(){
return dato;
}
public void enlazarSiguiente(Nodo n){
siguiente=n;
}
//constructor para insertar al inicio
public Nodo obtenerSiguiente(){
return siguiente;
}
}
CLASE LISTA
public class Lista {
Nodo cabeza;
int size;
public Lista(){
cabeza=null;
size=0;
}
public Object obtenerPosicion(int indice){
int contador=0;
Nodo temporal=cabeza;
while(contador <indice){
temporal=temporal.obtenerSiguiente();
contador++;
}
return temporal.obtenerValor();
}
public void anadirPrimero(Object obj){
if (cabeza==null)
{
cabeza= new Nodo(obj);
}else{
Nodo tem =cabeza;
Nodo nuevo = new Nodo (obj);
nuevo.enlazarSiguiente(tem);
cabeza=nuevo;
}
size++;
}
2. public void eliminar(int indice){
if (indice==0){
cabeza=cabeza.obtenerSiguiente();
}else
{
int contador=0;
Nodo temporal= cabeza;
while ( contador<indice-1)
{
temporal=temporal.obtenerSiguiente();
contador++;
}
temporal.enlazarSiguiente(
temporal.obtenerSiguiente().obtenerSiguie
nte());
}
size--;
}
public void eliminarPrimero(){
cabeza= cabeza.obtenerSiguiente();
size--;
}
public boolean estaVacia(){
return(cabeza==null)?true:false;
}
public int size(){
return size;
}
}
METODO MAIN
public static void main(String[] args) {
// TODO code application logic here
/* Nodo primer = new Nodo(4);
Nodo segundo= new Nodo(2022);
Nodo tercer = new Nodo (06);
primer.enlazarSiguiente(segundo);
primer.obtenerSiguiente().enlazarSiguiente
(tercer);
System.out.println(primer
.obtenerSiguiente()
.obtenerValor().toString());*/
Lista lista = new Lista();
lista.anadirPrimero("kandy");
lista.anadirPrimero(38);
lista.anadirPrimero("agua dulce");
System.out.println("Primer elemento:
"+lista.obtenerPosicion(0));
System.out.println("Indice 2:
"+lista.obtenerPosicion(1));
lista.eliminar(1);
System.out.println("Indice 2:
"+lista.obtenerPosicion(1));
System.out.println("ultimo elemnto:
"+lista.obtenerPosicion(lista.size()-1));
System.out.println("Esta vacia:
"+lista.estaVacia());