Codificación de la Clase Pila
public class Pila {
class Nodo {
int info;
Nodo sig;
}
private Nodo Raiz;
public Pila() {
Raiz = null;
}
public boolean Vacia() {
if (Raiz == null) {
return true;
} else {
return false;
}
}
public void Insertar(int Infoa) {
Nodo Nuevo = new Nodo();
Nuevo.info = Infoa;
if (Vacia()) {
Raiz = Nuevo;
Nuevo.sig = null;
} else {
Nuevo.sig = Raiz;
Raiz = Nuevo;
}
}
public int Extraer() {
if (Vacia()) {
return -32000;
} else {
Nodo Bor;//es un Nodo Auxiliar Bor==Borrar
// no va el new porqï solo es un puntero
Bor = Raiz;
Raiz = Raiz.sig;
int Aux = Bor.info;
return Aux;
}
}
public void Imprimir() {
Nodo Reco = Raiz; //le asigno la direccion de raiz
while (Reco != null) {
System.out.println(Reco.info + "\t");
Reco = Reco.sig;
}
}
public int Mayor() {
Nodo Reco = Raiz;
if (Vacia()) {
return Integer.MIN_VALUE;
} else {
int Mayor = Reco.info;
while (Reco != null) {
if (Reco.info > Mayor) {
Mayor = Reco.info;
}
Reco = Reco.sig;
}
return Mayor;
}
}
public int Menor() {
Nodo Reco = Raiz;
if (Vacia()) {
return -32000;
} else {
int Menor = Reco.info;
while (Reco != null) {
if (Reco.info < Menor) {
Menor = Reco.info;
}
Reco = Reco.sig;
}
return Menor;
}
}
public int Suma() {
Nodo Reco = Raiz;
int Suma = 0;
if (Vacia()) {
return Suma;
} else {
while (Reco != null) {
Suma += Reco.info;
Reco = Reco.sig;
}
return Suma;
}
}
public int PosMayor() {
Nodo Reco = Raiz;
if (Reco == null) {
return Integer.MIN_VALUE;
} else {
int Contador = 1;
int PosdelMayor = 1;
int Mayor = Reco.info;
while (Reco != null) {
if (Reco.info > Mayor) {
Mayor = Reco.info;
PosdelMayor = Contador;
}
Reco = Reco.sig;
Contador++;
}
return PosdelMayor;
}
}
public int PosMenor() {
Nodo Reco = Raiz;
if (Reco == null) {
return Integer.MIN_VALUE;
} else {
int Contador = 1;
int PosdelMenor = 1;
int Menor = Reco.info;
while (Reco != null) {
if (Reco.info < Menor) {
Menor = Reco.info;
PosdelMenor = Contador;
}
Reco = Reco.sig;
Contador++;
}
return PosdelMenor;
}
}
public boolean isExiste(int Valor) {
Nodo Reco = Raiz;
while (Reco != null) {
if (Valor == Reco.info) {
return true;
} else {
Reco = Reco.sig;
}
}
return false;
}
public int Repite(int Infoa) {
int Cant = 0;
Nodo Reco = Raiz;
while (Reco != null) {
if (Infoa == Reco.info) {
Cant++;
}
Reco = Reco.sig;
}
return Cant;
}
public int CantiNodos() {
Nodo Reco = Raiz;
int Canti = 0;
if (Vacia()) {
return Canti;
} else {
while (Reco != null) {
Canti = Canti + 1;
Reco = Reco.sig;
}
return Canti;
}
}
}
