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;
}
}
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"));
}
}
eres mi heroe, gracias!
ResponderEliminarhola 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
ResponderEliminarMe fue de gran ayuda gracias!
ResponderEliminar