jueves, 12 de diciembre de 2013

PILAS DE UN NODO

PARA EL MANEJO DE DATOS SE CUENTA CON DOS OPERACIONES BÁSICAS: APILAR (push), QUE COLOCA UN OBJETO EN LA PILA, Y SU OPERACIÓN INVERSA, RETIRAR ( o des apilar, pop), QUE RETIRA EL ÚLTIMO ELEMENTO APILADO.



CLASE 1:
package nodo;

public class Nodo {
      private String informacion;
      private Nodo enlace;

      public Nodo (String x)
      {
          informacion=x;
          enlace=null;
      }
      public Nodo(String x, Nodo n){
        informacion=x;
        enlace=n;
      }
    public String getInformacion() {
        return informacion;
    }
    public void setInformacion(String informacion) {
        this.informacion = informacion;
    }
    public Nodo getEnlace() {
        return enlace;
    }
    public void setEnlace(Nodo enlace) {
        this.enlace = enlace;
    }

}


CLASE 2:

package nodo; // debo de indicar en nombre de mi proyecto en todas las clases que utilizare
                        // para evitar errores en el nombre de mi clase.


public class Pilas {


 private Nodo tope;


 Pilas(){

       tope=null;
   }

    public Nodo gettope() {

        return tope;
    }
    public void settope(Nodo tope) {
        this.tope = tope;
    }
 
   public Pilas push(String informacion){
   Nodo nuevo = null;
   nuevo= new Nodo(informacion);//crear nuevo nodo(elemento)
   nuevo.setEnlace(tope);//enlaza nuevo al frente de la lista
   tope=nuevo;//mueve inicio y apunta al nuevo nodo
   return this;//devuelve la referencia del objeto lista
   }
   public String pop(){///quitar de la lista l ultimo nodo
      Nodo ultimo = null,anterior=null;
      ultimo=tope;
      while(ultimo.getEnlace()!=null){
          anterior=ultimo;
          ultimo=ultimo.getEnlace();
          }
      if(tope.getEnlace()==null){
          tope=null;
      }
      else{
      anterior.setEnlace(null);//borrado logico
      }
      return ultimo.getInformacion();
      }

}

No hay comentarios:

Publicar un comentario