Advertisement
RafaelFascio

clase Pila

May 5th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. public class Pila<ELEMENT> {
  2.    
  3.     private final static Integer defaulDimension = 100;
  4.    
  5.     private ELEMENT [] data;
  6.     private Integer contador;
  7.    
  8.     public Pila() {
  9.         this(Pila.defaulDimension);
  10.     }
  11. //    @SuppressWarnings("unchecked")
  12.     public Pila(Integer dimension) {
  13.         if (dimension <= 0) {
  14.             throw new RuntimeException("La cantidad de elementos en la  pila debe ser positiva");
  15.         }
  16.         this.data = (ELEMENT []) new Object[dimension];
  17.         this.contador = 0;
  18.     }
  19.    
  20.     public boolean empty() {
  21.         return this.contador <= 0;
  22.     }
  23.    
  24.     public ELEMENT peek() {
  25.         if (this.empty()) {
  26.             throw new RuntimeException("La pila está vacía...");
  27.         }
  28.         return this.data[this.contador - 1];
  29.     }
  30.    
  31.     public ELEMENT pop() {
  32.         if (this.empty()) {
  33.             throw new RuntimeException("La pila está vacía...");
  34.         }
  35.         --this.contador;
  36.         return this.data[this.contador];
  37.     }
  38.    
  39.     public ELEMENT push(ELEMENT element) {
  40.         if (this.size() >= this.data.length) {
  41. //            throw new RuntimeException("La pila está llena...");
  42.  
  43. //            @SuppressWarnings("unchecked")
  44.             ELEMENT [] temp = (ELEMENT []) new Object[this.data.length * 2];
  45.             for (int i = 0; i < this.data.length; ++i) {
  46.                 temp[i] = this.data[i];
  47.             }
  48.             this.data = temp;
  49.         }
  50.         this.data[this.contador] = element;
  51.         ++this.contador;
  52.         return element;
  53.     }
  54.    
  55.     public int search(Object object) {
  56.         for (int pos = this.contador - 1; pos >= 0; --pos) {
  57.             if (this.data[pos].equals(object)) {
  58.                 return this.contador - pos;
  59.             }
  60.         }
  61.         return -1;
  62.     }
  63.    
  64.     public int size() {
  65.         return this.contador;
  66.     }
  67.    
  68.    
  69.     @Override
  70.     public String toString() {
  71.  
  72.         if (this.size() <=0) {
  73.             return "";
  74.         }
  75.  
  76.         StringBuilder sb = new StringBuilder();
  77.         sb.append("[" + this.data[0].toString());
  78.         for (int i = 1; i < this.size(); ++i) {
  79.             sb.append(", " + this.data[i].toString());
  80.         }
  81.         sb.append("]");
  82.         return sb.toString();
  83.     }
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement