Check the new version here

Popular channels

Invertir un numero con una pila auxiliar Neetbeans

Holi soy un muchacho del tercer ciclo bueno paso al 4 de ingenieria de sistemas y queria compartir un pequeño algoritmo ya que lo busque por internet y no lo haye como yo esperaba:
Empezamos :
lo primero yo suelo trabajar con una clase claro con un menú

1. Se pide implementar un método que invierta una pila utilizando las operaciones básicas de pilas. Se invertirá el contenido de la pila utilizando una pila auxiliar
Como sabrán deben tener un push () donde se realizara el método para ingresar datos ala pila principal y un pop para extraerlos, por ende si como el problema le pide una pila auxiliar debe de haberse creado el push auxiliar, como vamos a tener dos push uno principal y uno auxiliar debemos tener dos pop, por que sacaran la información y la pasaran ala pila auxiliar antes de crear un pop() debemos crear si o si pila vacía, con este método se podrá saber si la pila tiene datos ya que si no cuenta con ese método no sabrá que datos extraer el pop() y un método para invertir el numero o palabra, les recuerdo que deben tener conocimientos de Nodos ya que se usan enlaces, cab, el uso de cadenas.

package pilainvertida; //el nombre de mi proyecto
import javax.swing.JOptionPane;
public class Pilainvertida {
public class Nodo{
char info;//la informacon ingresada es por letra o numero
Nodo sig;//la relacion su enlace apunta a siguiente
} Nodo raiz;//la union enlace
public class aux{//auxiliar
char info;//la informacion sera letras tambien admite numeros
aux sig;
}
aux nodo;
public Pilainvertida(){
raiz=null;// constructores
nodo = null;
}
public void push(char x){//inserción de datos a la pila principal
Nodo nuevo;//declaramos un Nodo nuevo
nuevo = new Nodo();
nuevo.info = x; //la información va hacer igual a X
if (raiz==null)
{ nuevo.sig = null;
raiz = nuevo;
}else
{
nuevo.sig = raiz;
raiz = nuevo;
}
}
public void push2(char x){//inserción de datos para la pila auxiliar
Nodo nuevo;
nuevo = new Nodo();
nuevo.info = x;
if (raiz==null)
{ nuevo.sig = null;
raiz = nuevo;
}else
{
nuevo.sig = raiz;
raiz = nuevo;
}
}

public boolean pila_vacia() {//para ver si tiene datos la pila
if (raiz==null)//la raiz va al final
return true;
else
return false;
}
public char pop ( ) {// el metodo para extraer los datos la pila principal
char aux;
if (pila_vacia())
aux=0;
else{
aux=raiz.info;
raiz=raiz.sig; }
return aux;

}public int pop2( ) {//extraer datos de la pila auxiliar
int aux;
if (pila_vacia())
aux=-1;
else{
aux=raiz.info;
raiz=raiz.sig; }
return aux;
}public void invertir_numero(){//ingresamos datos
String numero;
numero=JOptionPane.showInputDialog("---Ingrese elemento---");;
for (int i=0; i push(numero.charAt(i));//push para que reconozca el numero y i indicado a 0
}
for (int i=0; i
push2(pop());//push dos me reconozca la pila
}}
public void mostrar(){//mostramos los numeros invertidos o letras en este caso ingrese numeros
Nodo aux = raiz;
String cadena = "Numeros invertidos de la pila: n";
if(!pila_vacia()){
while(aux != null){//paara recorrer los nodos
cadena = cadena+aux.info+"n";
aux = aux.sig;
}
JOptionPane.showMessageDialog(null,cadena);
} else
JOptionPane.showMessageDialog(null,"La pila esta vacia *o*");
}}
-----------------------------------------------------------------------------------------------------------------------
Ahora viene el principal

package pilainvertida;

import javax.swing.JOptionPane;//para mostrar
public class principal {
public static void main(String[] args) {

int op;
Pilainvertida asd = new Pilainvertida();
Pilainvertida aux = new Pilainvertida();
do{
op = Integer.parseInt(JOptionPane.showInputDialog("MENU DE OPCIONES n "
+ "n1.- Invertir numero "
+ "n2.- Mostrar PILA1"
+ "n0 Salir " ));
switch(op){

case 1: asd.invertir_numero();break;//usan case
case 2: asd.mostrar();break;
}
}while(op != 0);
}}
Espero no haberlos aburrido
Agreguen
https://www.facebook.com/es.todo.loquillo
solo pidan algoritmos y andare para apoyar
+1
0
0
0No comments yet