OMAR_GUTIERREZ

Stack

Oct 25th, 2021
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | None | 0 0
  1. import org.w3c.dom.Node;
  2.  
  3. public class Stack<T> {
  4.     private Node head;
  5.     private int count;
  6.     private Node tail;
  7.    
  8.     //Retorna cantidad de elementos de la lista
  9.     public int getCount() {
  10.         return this.count;
  11.     }
  12.     public Stack() {
  13.         this.head = null;
  14.         this.count = 0;
  15.         this.tail = null;
  16.     }
  17.     //agreg al principio
  18.     public void AddFirst(T item) {
  19.         Node temp = new Node(item, this.head);
  20.         if(this.count==0) {
  21.             this.tail=temp;
  22.         }
  23.         this.head=temp;
  24.         ++this.count;
  25.     }
  26.     //agrega al final
  27.     public void AddLast(T item) {
  28.         Node temp=new Node(item,null);
  29.         if(this.count==0) {
  30.             this.head=temp;
  31.         }else {
  32.             this.tail.next=temp;
  33.         }
  34.         this.tail=temp;
  35.         ++this.count;
  36.     }
  37.     //exttrae y devuelve el primer elemento
  38.     public T RemoveFirst() {
  39.         if(this.count==0) {
  40.             throw new RuntimeException("La lista esta vacia...");
  41.         }
  42.         T item =this.head.item;
  43.         this.head=this.head.next;
  44.         if(this.head==null) {
  45.             this.tail=null;
  46.         }
  47.         --this.count;
  48.         return item;
  49.     }
  50.     //extrae y devuelve el ultimo elemntoo de la lista
  51.     public T RemoveLast() {
  52.         if(this.count==0) {
  53.             throw new RuntimeException("La lista esta vacia...");          
  54.         }
  55.         T item = this.tail.item;
  56.         if(this.head.next==null) {
  57.             this.head=this.tail=null;
  58.         }else {
  59.             Node skip=this.head;
  60.             for(;skip.next.next != null;skip=skip.next) { }
  61.             this.tail=skip;
  62.             this.tail.next=null;
  63.         }
  64.         --this.count;
  65.         return item;
  66.     }
  67.     public void Mostrar() {
  68.         for (Node skip=this.head;skip != null;skip=skip.next) {
  69.             System.out.printf("%s", skip.toString());
  70.         }
  71.     }
  72.     private class Node{
  73.         public T item;
  74.         public Node next;
  75.         public Node() {
  76.             this(null,null);
  77.         }
  78.         public Node(T item) {
  79.             this(item,null);
  80.            
  81.         }
  82.         public Node(T item,Node next) {
  83.             this.item=item;
  84.             this.next=next;
  85.         }
  86.         public String toString() {
  87.             return this.item.toString();
  88.         }
  89.     }
  90.  
  91. }
  92.  
Advertisement
Add Comment
Please, Sign In to add comment