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.
Código
Mi main donde llamo mis metodos
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()){ }else{ TOPE+=1; Datos[TOPE]=dato; } } public int desapilar() { //throw new UnsupportedOperationException("Not supported yet."); int dato=-999; if(pilaVacia()){ }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--){ if(f<t) p1.apilar(t); else if(t>t) p1.apilar(t); } }
Código
public class Main { /** * @param args the command line arguments */ 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);