InicioCiencia EducacionPila Ligada (nexos) en JAVA

Pila Ligada (nexos) en JAVA

Ciencia EducacionFecha desconocida
Aquí  con un nuevo post muy sencillo, hace ya tiempo que hice este código como tarea y les comparto el código y el pdf donde viene una breve explicacon espero les sea de utilidad




Pila Ligada


Una pila es una estructura  de datos lineal en la cual se obtiene acceso a los datos en un orden especifico.
Primero en entrar ultimo en salir (LIFO).


Pila Ligada (nexos) en JAVA


Se observa que e una Pila los datos entran y salen por el mismo lado


Para una pila Ligada necesitamos un Nodo que es como una envoltura que contiene el dato y el enlace a un nodo siguiente


java





A continuación la clase Nodo

/**
 * Write a description of class Nodo here.
 * 
 * @author (Eli Alejandro Salinas Perez) 
 * @version (a version number or a date)
 */
public class Nodo
{
    // Necesitaremos un Nodo, imagenemos un nodo como una envoltura que contiene un dato, y tambien contienen
    // el enlace a otro dato
    //Declaramos los atributos del Nodo, un nodo se compone de un dato y de un enlace que es un Nodo
    
    private Object dato;
    // Nuestro dato sera de tipo Object para hacerlo mas generico
    private Nodo siguiente;
    // El nodo se llamara siguiente ya que contiene el enlace al siguiente nodo
    
    
    // Creamos nuestro Constructor .
    // Que parametros debe llevar el construtor?? La respuesta es simple, El dato que se almacenara
    
    public Nodo(Object dato){
    this.dato=dato;
    this.siguiente=null;
    // El sigueinte comienza en nulo porque podemos tener un solo nodo
    }
    
    // A contnuacion haremos los set y get de nuestros atributos
    
    public void setDato(Object Dato){
        this.dato=dato;
        // por eso prefiero Netbeans , los get y set los gneera solo jejee
        
    }
    public Object getDato(){
    return dato;
    }
    
    public void setSiguiente(Nodo siguiente){
    this.siguiente=siguiente;
    }
    
    public Nodo getSiguiente(){
    return siguiente;
    }
    
    
    
    // Ya quedo nuestra clase Nodo asi de sencilla
    


}


Ahora la clase Pila


/**
 * Write a description of class Pila here.
 * 
 * @author (Eli Alejandro Salinas Perez) 
 * @version (a version number or a date)
 */
public class Pila
{
Nodo tope;
// que contiene nuestra pila priemramente un tope, que se refiere a cual es el nodo ultimo dentro de
// pila
int cont;
// un contador que permite saber cuantos elemntos existen en la pila
public Pila() {
tope = null;
// la pila debe iniciar vacia es decir sin ningun nodo
}


// Nuestro metodo vacia(), determina si nuestra pila esta vacia, como se que esta vacia? pues esta vacia 
// cuando el tope es nulo es decir no existe ningun nodo
public boolean vacia(){
if(tope==null)
return true;
return false;
}


// nuestro metodo push() es el que agrega a la pila los elementos, que recibe pues el dato que es de tipo Object 
// para ser mas generico


public boolean push(Object ob){
Nodo aux=new Nodo(ob); // El dato es guardao en un Nodo, se crea un objecto nodo que contiene el dato pasado
if(aux!=null){
    // Si nuestro nodo no es nulo agrega
aux.setSiguiente(tope);
// el tope ahora se enlaza a nuestro nodo que se inserta, es decir tenemos un nuevo tope 
tope=aux;
// tope toma el valor de aux (todo el objeto, con su dato y su nodo siguiente)
cont++;
// contador aumento pues tenemos un nodo nuevo
return true;
}
return false;
}


//Metodo pop , este metodo es el que elimina de nuestra pila, en una pila solo se puede eliminar desde el tope es decir el ultimo elemento que entro
public Object pop(){
    // para eliminar primero debemos comprobar que no se encuentre vacia
if(!vacia()){ // si no esta vacia, entonces puede eliminar
Object ob=tope.getDato(); // se obtiene el dato del nodo tope, guardandolo en un object temporal


tope=tope.getSiguiente(); // ahora tope toma el valor del tope siguiente , con esto se a eliminado, pues el tope anterior que queda volando y el recolector de basura se lo
// llevara ya que no encuentra referencia a ese nodo
cont--;
// contador se decrementa
return ob;
// se retorna el nodo que se guardo temporalmente para ser mostrado
}
return null;
// si esta vacia retorna null o nada pues
}




// Ver tope solo nos permite ver el ultimo nodo sin eliminarlo


public Object verTope(){
    // de nuevo solo puedo ver el tope si existe algo en mi pila
if(!vacia()){
return tope.getDato();
// retorna el nodo del tope y ya
}
return null;

    
// No es esencial tener el contador, si lo ponen agreguen los set y get del contador
}




pila





Adjunto el pdf donde viene una pequeña prueba y el proyecto en Bluej






Para la prueba es necesario usar el IDE Bluej, yo lo recomiendo si están en aprendizaje, podrán descargarlo aquí.
http://www.bluej.org/
Datos archivados del Taringa! original
8puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
6visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

E
E_sama🇦🇷
Usuario
Puntos0
Posts13
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.