1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Re: Menú en Java para Pilas
« en: 29 de Julio 2022, 18:50 »
Amigo Kabuto, ya hice el ajuste, solo que al llamar al procedimiento de la clase pila, me marca error, no puedo completar el menu por que no reconoce el llamado, el cual realizo asi.
pila.apilar();
pila.retirar();
Anexo el código con el ajuste que me indicas:
Clase Principal Menú
Java Class Pila
Java Class Nodo
pila.apilar();
pila.retirar();
Anexo el código con el ajuste que me indicas:
Clase Principal Menú
Código: [Seleccionar]
package menu;
import java.util.Scanner;
public class Menu {
private static Pila pila = new Pila();
private static Scanner teclado = new Scanner(System.in);
public static void main(String[] args) {
int opcion = 0;
while (opcion != 11) {
System.out.println("\n\t\tMENU PILA\n");
System.out.println("[1] -- Es vacia");
System.out.println("[2] -- Tamaño de la pila");
System.out.println("[3] -- Guardar un nuevo registro (apilar)");
System.out.println("[4] -- Eliminar un elemento de la pila(retirar)");
System.out.println("[5] -- El ultimo elemento de la pila(cima)");
System.out.println("[6] -- Buscar");
System.out.println("[7] -- Remover un elemento de la pila");
System.out.println("[8] -- Editar, cambiar un elemento de la pila por otro valor");
System.out.println("[9] -- Eliminar la pila");
System.out.println("[10] -- Listar elementos contenidos en las pilas");
System.out.println("[11] -- Salir");
System.out.print("Elija opcion: ");
opcion = teclado.nextInt();
switch(opcion) {
case 1:
System.out.println(pila.esVacio()?"La pila esta vacia":"La pila NO esta vacia");
break;
case 2:
System.out.println("Tamaño pila: " + pila.getTamanio());
break;
case 3:
pila.apilar();
break;
case 4:
System.out.println("Ingrese el elemento a eliminar") pila.retirar();
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
System.out.println("\n\t\tFIN DE PROGRAMA");
break;
default:
System.out.println("\nOpcion equivocada...");
}
}
}
}
Java Class Pila
Código: [Seleccionar]
package menu;
public class Pila {
//Definiendo los atributos de la pila
private Nodo inicio;
private int tamanio;
//Constructor
public void Pila(){
inicio=null;
tamanio=0;
}
/** Consulta si la pila esta vacia
*@return true si el primer nodo (inicio), no apunta a otro nodo.
*/
public boolean esVacio(){
return inicio==null;
}
/**
* Consulta cuantos elementos (nodos) tiene la pila.
* @return numero entero entre (0,n)donde n es el numero de elementos
* que contenga la lista
*/
public int getTamanio(){
return tamanio;
}
public void apilar(int valor){
//Definir nuevo nodo
Nodo nuevo= new Nodo();
//Agrega al valor Nodo
nuevo.setValor(valor);
//Consultar si la pila esta vacia.
if(esVacio()){
//Inicializa la pila con el nuevo valor
inicio=nuevo;
}
//en caso contrario agrega el nuevo nodo al inicio de la pila
else{
nuevo.setSiguiente(inicio);
inicio= nuevo;
}
//Incrementa el contador del tamaño de la pila
tamanio++;
}
//Elimina el elemento que se encuentra en el tope de la pila
public void retirar(){
if(!esVacio()){
//Asigna como primer nodo al siguiente de la pila
inicio= inicio.getSiguiente();
//Decremento de la variable del contador del tamaño de la pila
tamanio--;
}
}
//Metodo que regresa el valor que esta en la cima de la pila
public int cima() throws Exception{
if(!esVacio()){
return inicio.getValor();
}
else
{
throw new Exception("La pila se encuentra vacia");
}
}
public boolean buscar(int referencia){
//Crear una copia de la pila
Nodo aux = inicio;
//Verificar si existe el elemento a buscar
boolean existe= false;
//Recorre la pila hasta llegar a encontrar el nodo o
//llegar al final de la pila
while(existe !=true && aux!=null){
//Compara si el valor del nodo es igual al valor de la referencia
if(referencia==aux.getValor()){
existe=true;
}
else
{
//Avanza al siguiente nodo
aux= aux.getSiguiente();
}
}
return existe;
}
}
Java Class Nodo
Código: [Seleccionar]
package menu;
class Nodo {
//Definir los atributos
private int valor;
private Nodo siguiente;
//Constructor
public Nodo(){
this.valor=0;
this.siguiente=null;
}
//Metodos get y set
public int getValor(){
return valor;
}
public Nodo getSiguiente(){
return siguiente;
}
public void setValor(int valor){
this.valor= valor;
}
public void setSiguiente(Nodo siguiente){
this.siguiente = siguiente;
}
}