jueves, 13 de octubre de 2011

PILA DINÁMICA EN JAVA

package estructuradedatospilas;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class pilas {
     public static void main(String[] args) {
        Scanner leer = new Scanner (System.in);
        int num;
        int op;
        LinkedList pila = new LinkedList();
        do{
            System.out.println("\t menu \t");
            System.out.println("operaciones con pilas");
            System.out.println("1.-insertar al principio");
            System.out.println("2.-insertar al final");
            System.out.println("3.-borrar al final");
            System.out.println("4.-mostrar la pila");
            System.out.println("5.-salir");
            System.out.println("\n");
            System.out.println("elija la operacion que desee");
            op=leer.nextInt();
            switch (op){
                case 1:
                    System.out.println("inserte numero");
                    num=leer.nextInt();
                    pila.addFirst(num);
                    break;

                case 2:
                        System.out.println("inserte numero");
                        num=leer.nextInt();
                        pila.addLast(num);
                        break;


                case 3:
                    System.out.println("se borra el nodo final");
                    pila.removeLast();
                    break;

                case 4:
                    System.out.println("la pila es la siguiente");
                    List pila2= new ArrayList(pila);
                    Iterator it = pila2.iterator();
                    while (it.hasNext()){
                        System.out.println(it.next()+"");

                    }
                    break;
                    case 5:
                     System.out.println("al rato");
                     break;
            }
        }
        while (op !=5);   }            }

PILA ESTATICA EN JAVA

package PILAS;
import java.util.Scanner;

public class pilaestatica {
    public int dato;
    public static int tope;
    public static int op;
    int pila[] = new int [10];
public void Insertar(){
      if(tope==10){
          System.err.println("Pila llena");
      }
      else{
       System.out.println("Proporciona el dato para la pila");
       System.out.println("dato "+tope);
       Scanner cap = new Scanner(System.in);
        pila[tope]= cap.nextInt();
        tope++;
       }
   
}
public void Imprimir(){
 if(tope>=10){
    for(int topeM=tope-1; topeM>=0; topeM--){
       System.out.println("\n\n"+pila[topeM]);
   }
    }
 else
        System.err.println("Pila Vacia No hay nada que mostrar");
}
public void Eliminar(){
    if(tope==0){
        System.err.println("Pila vacia");
    }
    else if(tope==10){//Esto se usa cuando la pila esta totalmente llena, ya que se incremento en insertar y quedo en 10, de lo contrario nos arrojará un error de Array
        tope--;
        pila[tope]=0;
        tope--;//SE vuelva a decrementar para que este en la posicion correcta, porque tenia un numero demás por el insertar
    }
    else {
        pila[tope]=0;
        tope--;
    }
}
    public static void main(String[] args) {
        pilaestatica p = new pilaestatica();
        String r;
        Scanner cap1= new Scanner(System.in);
        Scanner cap= new Scanner(System.in);
        tope=0;
    h:    do{
        System.out.println("Menu Principal: \n¿Que desea hacer con la pila?");
        System.out.println("1.- Insertar");
        System.out.println("2.- Eliminar");
        System.out.println("3.- Imprimir");
        System.out.println("4.- Salir");
        op=cap.nextInt();
        switch(op){
            case 1:
            {
              p.Insertar();
            }
            break;
            case 2:
            {
                p.Eliminar();
            }
            break;
            case 3:
            {
                p.Imprimir();
            }
            break;
            case 4:
            {
                System.out.println("Adios!!!");
            }
            break h;
            default:
                System.err.println("Seleccion erronea, teclea otra opcion esa opcion no existe!!!");
        }
            System.out.println("Deseas realizar otra operacion con tu pila?(S/N)");
            r=cap1.nextLine();
    }while(r.equalsIgnoreCase("S"));
  }
}

3 comentarios:

  1. hola que tal una pregunta la pila tiene que estar llena para que se puedan mostrar los datos de la pila?? porque cuando solo le inserto 2 datos y le digo que me imprima la pila me dice que la pila esta vacia

    ResponderEliminar