EjercicioPilas
Enviado por Yuyi Correa • 30 de Septiembre de 2021 • Tarea • 2.989 Palabras (12 Páginas) • 60 Visitas
package EjercicioPilas;
public class Principal {
public static void main(String[] args) {
Pila p = new Pila();
p.Apilar(6);
p.Apilar(5);
p.Apilar(4);
p.Apilar(2);
p.Apilar(1);
Pila p2 = new Pila();
p2.Apilar(9);
p2.Apilar(6);
p2.Apilar(3);
p2.Apilar(2);
Pila x = new Pila();
x.Apilar("C");
x.Apilar("B");
x.Apilar("A");
System.out.println("Pila 1\n"+ p.Mostrarpila());
System.out.println("Pila 2\n"+ p2.Mostrarpila());
System.out.println("--------------------------");
p.DesapilaRepetidos(p, p2);
System.out.println("Pila 1 \n" + p.Mostrarpila());
System.out.println("Pila 2 \n"+ p2.Mostrarpila());
System.out.println("--------------------------");
System.out.println("Palabra \n"+x.Mostrarpila());
System.out.println("--------------------------");
x.ConvertirCap(x);
System.out.println("Pila de forma Capicua \n"+x.Mostrarpila());
System.out.println("----------------------------");
x.Capicua(x);
System.out.println("Capicua "+x.Mostrarpila());
}
}
package EjercicioPilas;
public class Pila {
private Nodo cima; //es el ultimo es salir
private int tamanio;
public Pila() {
this.cima = null;
this.tamanio = 0;
}
public Nodo getCima() {
return cima;
}
public void setCima(Nodo cima) {
this.cima = cima;
}
public int getTamanio() {
return tamanio;
}
public void setTamanio(int tamanio) {
this.tamanio = tamanio;
}
@Override
public String toString() {
return "\ncima: " + cima + "\nTamanio: " + tamanio;
}
public boolean vacia() {
return cima==null;
}
public void Apilar(Object info) {//es como un insertar
Nodo nuevo = new Nodo(info);
nuevo.setSiguiente(cima); //aqui cima sigue en null
cima=nuevo; //cima toma el valor de nuevo y nuevo sigue a puntando a null
tamanio++;
}
public void Desapilar(){
if (!vacia()) {
cima=cima.getSiguiente();
tamanio--;
}
}
public void VaciarPila() { //es para limpiar toda la pila
//esto va a ser verdadero cuando no haya un valor
while (!vacia()) {
Desapilar();
}
}
public String Mostrarpila() {
String pila="";
if (!vacia()) {
Nodo aux = cima;
while(cima != null) {
pila+=cima.getInfo()+"\n";
cima=cima.getSiguiente(); //aqui cima esta de nuevo en null
}
cima=aux;
}
return pila;
}
public void Ejercicio1(Pila p, int n) {
Pila aux = new Pila();
if (!vacia()) {
while (!p.vacia()) {
aux.Apilar(p.getCima().getInfo());
p.Desapilar();
}
while (aux.getCima() != null) {
for (int i = 0; i < n; i++) {
p.Apilar(aux.cima.getInfo());
}
aux.Desapilar();
}
}
}
public int Buscar_menor(Pila p) {
int menor = (int) p.cima.getInfo();
if (!vacia()) {
Nodo aux = p.cima;
while (aux != null) {
if ((int) aux.getInfo() < menor) {
menor = (int) aux.getInfo();
}
aux = aux.getSiguiente();
{
}
}
}
return menor;
}
public void Ejercicio2(Pila p) {
if (!vacia()) {
Pila aux = new Pila();
int menor = Buscar_menor(p);
while (p.getCima() != null) {
int x=(int) p.getCima().getInfo();
if (x != menor){
aux.Apilar(x);
}
p.Desapilar();
}
p.Apilar(menor);
while(aux.getCima()!=null) {
p.Apilar(aux.getCima().getInfo());
aux.Desapilar();
}
}
}
public void DesapilaRepetidos(Pila p, Pila p2) {
Pila x = new Pila();
...