You are on page 1of 2

Algoritmos y Estructura de Datos Página: 1

TDA Lista

class NodoLista <T> {


T elemento;
NodoLista<T> siguiente;

NodoLista (T o){
this.elemento = o;
this.siguiente = null;
}

NodoLista (T o, NodoLista<T> sig){


this.elemento = o;
this.siguiente = sig;
}
}

class Lista <T> {


NodoLista<T> cabecera;

Lista(){
this.cabecera = new NodoLista<T>(null);
}

boolean estaVacia(){
if (this.cabecera.siguiente == null)
return true;
else
return false;
}

int buscar (T o){


int pos = 0;
NodoLista<T> nodo = this.cabecera.siguiente;
while (nodo != null && !nodo.elemento.equals(o) ){
pos++;
nodo = nodo.siguiente;
}
If (nodo != null)
return pos;
else
return -1;
}

void insertarInicio (T o){


cabecera.siguiente = new NodoLista<T> (o, cabecera.siguiente);
}

T eliminar(T o){
NodoLista<T> nodo = this.cabecera;
while (nodo.siguiente != null && !nodo.siguiente.elemento.equals(o)){
nodo = nodo.siguiente;
}
if (nodo.siguiente != null){
T item = nodo.siguiente.elemento;
nodo.siguiente = nodo.siguiente.siguiente;
return item;
}
else
return null;
}

public String toString(){

Karim Guevara Puente de la Vega


Algoritmos y Estructura de Datos Página: 2

String cad="";
int p=-1;
NodoLista<T> nodo = this.cabecera;
while (nodo.siguiente != null){
p++;
cad=cad+"["+p+": "+nodo.siguiente.elemento+"], ";
nodo = nodo.siguiente;
}
return cad;
}
}

public class TestLista {


public static void main (String[] args)
{
Lista<Integer> lstI = new Lista<Integer>();

lstI.insertarInicio(20);
lstI.insertarInicio(5);
lstI.insertarInicio(34);
lstI.insertarInicio(19);
print(lstI);
print("Pos. 19: "+lstI.buscar(19));
print("Del 5: "+lstI.eliminar(5));
print("Pos. 5: "+lstI.buscar(5));
print("Pos. 20: "+lstI.buscar(20));
print("Del 345: "+lstI.eliminar(345));

Lista<String> lstS = new Lista<String>();

lstS.insertarInicio("Hola");
lstS.insertarInicio("Mundo");
lstS.insertarInicio("Estoy");
lstS.insertarInicio("probando");
lstS.insertarInicio("Listas");
lstS.insertarInicio("Enlazadas");
print("Elimino : "+lstS.eliminar("Hola"));
print("Pos. Listas: "+lstS.buscar("Listas"));
print(lstS);
}

public static <X> void print (X item){


System.out.println(item);
}
}

Karim Guevara Puente de la Vega

You might also like