Tengo mis metodos apilar,desapilar,pilavacia,pilalena imprimir pila esoos son mis metodos.
apilo 3 datos 1,2,3 y de ahi pongo n=2 entonces deberia imprimirme asi 1,2,3,1,2,3 y asi dependiendo cuanto le asigne a n ahi sta el metodo q intente hacer no se q esta mal mi metodo es
repetirN
Código
public class TadPila implements Pila {
private static class pilaVacia extends Exception {
public pilaVacia() {
}
}
private int tope;
private int max=4;
private int[] Datos;
public TadPila() {
Datos=new int[max]; //crear la pila vacia
}
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;
// <editor-fold defaultstate="collapsed" desc="comment">
}// </editor-fold>
public void escribirPila(){
int dato;
if(!pilaVacia()){
dato=desapilar();
System.out.println(dato);
escribirPila();
apilar(dato);
}
}
public void repetirN (Pila p, int n) {
int elem, i;
if (!p.pilaVacia ()) {
elem = p.desapilar ();
repetirN (p, n);
for (i = 0; i < n; i++){
p.apilar (elem);
}
}
}
public void imprimir(){
int dato,i;
for(i=0;i<tope+1;i++){
dato=Datos[i];
System.out.println(dato);
}
}
public void Imprime_Datos()
{
if(pilaVacia()==true)
{
System.out.println("La pila esta vacia, ingrese datos primero:");
}
else
for(int Contador=1;Contador<Datos.length;Contador++)
System.out.println("Los valores de la pila son:"+Datos[Contador]);
}
}
/////////////////////esta es mi interfaz/////////////////////////////////////////
public interface Pila {
boolean pilaVacia();
boolean pilaLlena();
void apilar(int dato);
void repetirN(Pila p, int n);
int desapilar();
}
////////////////este es mi main/////////////////////////
public static void main(String[] args) {
TadPila p1= new TadPila();
int dato = 0;
int n=2;
p1.apilar(1);
p1.apilar(2);
p1.apilar(3);
p1.escribirPila();
p1.imprimir();
p1.Imprime_Datos();
p1.repetirN(p1, n);
}










Autor


En línea


