Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Pila<T> {
- //region Atributos.
- private NodoPila<Object> head;
- private NodoPila<Object> tail;
- int count;
- //endregion.
- //region Constructores.
- public Pila() {
- head=null;
- count=0;
- tail=null;
- }
- //endregion.
- //region Metodos de la Cola.
- //Inserta un elemento en especifico creando una nueva cima a la Pila.
- public void push(Object element) {
- NodoPila<Object> temp = new NodoPila<Object>(element);
- if(count==0) {
- this.head=this.tail=temp;
- ++count;
- }else {
- this.tail.next=temp;
- this.tail=temp;
- ++count;
- }
- }//Fin push.
- //Recupera y remueve la cima de la pila, o retorna un mensaje si la misma esta vacía.
- public Object pop() {
- if (empty()) {
- return "Ninguno, pila vacía...";
- }else {
- Object item = this.tail.data;
- if (this.head.next == null) {
- this.head = this.tail = null;
- } else {
- NodoPila<Object> skip = this.head;
- while (skip.next.next != null) {
- skip = skip.next;
- }
- this.tail = skip;
- this.tail.next = null;
- }
- --this.count;
- return item;
- }
- }//Fin pop.
- //Recupera, pero no remueve, la cima de la pila, o retorna nulo si se esta vacia.
- public Object peek() {
- if (empty()) {
- return "Nada porque la pila está vacía...";
- }else {
- return tail.data;
- }
- }//Fin peek.
- //region Object Methods
- //region Metodos de la Colleccion .
- public boolean empty() {
- return head==null;
- }//Fin empty.
- public int size() {
- return count;
- }//Fin size.
- //region Override Object basic methods.
- @Override
- public String toString() {
- if (size() <=0) {
- return "La pila se encuentra Vacía....";
- }
- // from https://docs.oracle.com/en/java/javase/15/docs/api/java.base/java/lang/StringBuilder.html
- StringBuilder sb = new StringBuilder();
- //Crear tail enlazarlo con el primer modo cargado y utilizarlo para recorre la pila correctamente.
- sb.append("[" + head.data.toString());
- for (NodoPila<?> skip = head.next; skip != null; skip = skip.next) {
- sb.append(", " + skip.data.toString());
- }
- sb.append("]");
- return sb.toString();
- }
- //endregion
- }
Add Comment
Please, Sign In to add comment