Estructuras de Datos Dinámicas
package estructurasdatosdinamicas;
/**
*
* @author Administrador
*/
public class ListaEnlazada {
protected String Nombre;
protected Nodo Primero;
protected Nodo Ultimo;
public ListaEnlazada(String n)
{
Nombre = n;
Primero = Ultimo = null;
}
public ListaEnlazada()
{
this.Nombre = "Lista";
}
public Boolean Lvacia()
{
return Primero ==null;
}
public String getNombre(){
return Nombre;
}
public Nodo getPrimero(){
return Primero;
}
public Nodo getUltimo(){
return Ultimo;
}
public void InsertFrente(Object obj){
if(Lvacia())
Primero=Ultimo= new Nodo(obj);
else
Primero=new Nodo (obj, Primero);
}
public void InsertAtras(Object obj){
if(Lvacia())
Primero=Ultimo= new Nodo(obj);
else
Ultimo=Ultimo.sgte=new Nodo (obj);
}
public Object DeleteFrente(){
Object DatoRemovido = null;
if(Lvacia())
System.out.println("Vacia");
DatoRemovido= Primero.Datos;
if(Primero.equals(Ultimo))
Primero = Ultimo = null;
else
Primero = Primero.sgte;
return DatoRemovido;
}
public Object DeleteAtras(){
Object DatoRemovido = null;
if (Lvacia()){
System.out.println("Vacia");
}
DatoRemovido = Ultimo.Datos;
if(Primero.equals(Ultimo)){
Primero = Ultimo = null;
}
else{
Nodo Actual = Primero;
while (Actual.sgte != Ultimo)
Actual = Actual.sgte;
Ultimo = Actual;
Actual.sgte= null;
}
return DatoRemovido;
}
public Object getElementoDeIndice(int Posicion){
if(Lvacia()){
return null;
}
else{
Nodo actual = Primero;
int cont = 1;
while((actual != null)&& (cont < Posicion)){
actual = actual.sgte;
cont++;
}
if((actual != null) && (cont == Posicion - 1)){
return actual.Datos;
}
else{
return null;
}
}
}
public void InsertarElementoEnIndice(int Posicion, Object obj){
Nodo nuevo;
Nodo actual;
if(Lvacia()){
return;
}
else{
actual = Primero;
int cont = 1;
while((actual != null) && (cont == Posicion -1)){
actual = actual.sgte;
cont++;
}
if ((actual != null) && (cont == Posicion - 1)){
nuevo = new Nodo(obj , actual.sgte);
actual.sgte= nuevo;
}
}
}
public Object DeleteElementoDeIndice (int Posicion){
Object DatoRemovido;
Nodo actual;
if(Lvacia()==true){
return null;
}
else{
if(Posicion == 1){
DatoRemovido=Primero.Datos;
Primero=Primero.sgte;
return DatoRemovido;
}
else{
actual=Primero;
int cont=1;
while((actual != null) && (cont<Posicion-1)){
actual=actual.sgte;
cont++;
}
if((actual !=null)&&(cont==Posicion-1)){
DatoRemovido=actual.sgte.Datos;
actual.sgte=actual.sgte.sgte;
return DatoRemovido;
}
}
return null;
}
}
}
Comentarios
Publicar un comentario
Deja tu Comentario.