public class Nodo<T> {
private T info;
private Nodo siguiente;
public Nodo(T info) {
this.info = info;
siguiente = null;
}
public Nodo(T info, Nodo<T> siguiente) {
this.info = info;
this.siguiente = siguiente;
}
public T getInfo() {
return info;
}
public void setInfo(T info) {
this.info = info;
}
public Nodo getSiguiente() {
return siguiente;
}
public void setSiguiente(Nodo<T> siguiente) {
this.siguiente = siguiente;
}
}
package proyectopilas;
public class Pila<T> {
private Nodo<T> primero;
public Pila() {
primero = null;
}
public void push(T x) {
Nodo<T> nuevo = new Nodo(x);
nuevo.setSiguiente(nuevo);
primero = nuevo;
}
public T pop() {
T x;
Nodo<T> temp;
x = primero.getInfo();
temp = primero;
primero = primero.getSiguiente();
temp = null;
return x;
}
public boolean esVacia() {
return primero == null;
}
public void mostrar() {
Nodo<T> p = primero;
while (p != null) {
System.out.println(p.getInfo());
p = p.getSiguiente();
}
}
}
package proyectopilas;
import java.util.Scanner;
public class ProyectoPilas {
public static void main(String[] args) {
// TODO code application logic here
int op, x;
Scanner entrada = new Scanner(System.in);
Pila<Integer> pila = new Pila();
do {
System.out.println("Menu Pilas");
System.out.println("[1] Agregar");
System.out.println("[2] Quitar");
System.out.println("[3] Mostrar");
System.out.println("[4] Salir");
System.out.print("Ingrese opcion : ");
op = entrada.nextInt();
switch (op) {
case 1:
System.out.print(" Ingrese numero : ");
x = entrada.nextInt();
pila.push(x);
break;
case 2:
if (!pila.esVacia()) {
x = pila.pop();
System.out.println("Dato desenpilado : " + x);
} else {
System.out.println("Lac pila esta vacia");
}
break;
case 3:
System.out.println(" Datos de la pila");
pila.mostrar();
break;
}
} while (op != 4);
}
}
0 comentarios:
Publicar un comentario