Buenas a todos!!!
Hace dias q ue estoy tratando de resolver este problema y no le doy solucion aun es por eso q recurro aca!!!
mi problema es este Pila1(3 elementos)+Pila2(5elementos)=PIla3(8elementos aca el detalle que me vote los elemntos ordenados en una tercera pila)
Mi codigo:
la parte combinar busque manera de hacerlo esa parte no sta bien q digamos.
package tad_pila;
/**
*
* @author Administrador//algoritmo 3.3
* apilar = cuando almacenamos valores
* lalalalalalala gracias
* desapliar=cuando retiramos los valores
*/
public class TADPila{
private int TOPE;
private int MAX=10;
private int [] Datos;
private int bandera;
//contructor
public TADPila(){
Datos= new int[MAX];//crear la pila
}
public boolean pilaVacia() {
//throw new UnsupportedOperationException("Not supported yet.");
if(TOPE==0)
return true;
else
return false;
}
public boolean pilaLlena() {
//throw new UnsupportedOperationException("Not supported yet.");
if(TOPE==MAX)
return true;
else
return false;
}
public void apilar(int dato) {
//throw new UnsupportedOperationException("Not supported yet.");
if(pilaLlena()){
System.
out.
println("Desbordamiento..... Pila Llena:"); }else{
TOPE+=1;
Datos[TOPE]=dato;
}
}
public int desapilar() {
//throw new UnsupportedOperationException("Not supported yet.");
int dato=-999;
if(pilaVacia()){
System.
out.
println("Underflow.. Pila Vacia:"); }else{
dato= Datos[TOPE];
TOPE-=1;
}
return dato;
}
public void escribirPila2 (TADPila pila)
{
int elem;
if (!pila.pilaVacia ())
{
elem = pila.desapilar ();
escribirPila2 (pila);
pila.apilar (elem);
}
}
public void imprimirPila()
{
int dato=0;
for(int i=TOPE; i>0;i--){
dato= Datos[i];
}
}
public void combinar(TADPila p1,TADPila p2)
{
int f,t;
for(int i=TOPE; i>0;i--){
System.
out.
println( f
= p1.
desapilar()); System.
out.
println( t
= p2.
desapilar());
if(f<t)
p1.apilar(t);
else if(t>t)
p1.apilar(t);
}
}
Mi main donde llamo mis metodos
public class Main {
/**
* @param args the command line arguments
*/
public static void main
(String[] args
) {
TADPila p1= new TADPila();
TADPila p2= new TADPila();
TADPila p3= new TADPila();
p1.apilar(9);
p1.apilar(1);
p1.apilar(3); //3
p1.apilar(5); //1
p1.apilar(-1);
p2.apilar(2);
p2.apilar(8);
p2.apilar(77);
p1.imprimirPila();
p1.combinar(p1, p2);