Advertisement
RafaelFascio

TP2 Ej 5Clase Pila-Equipo 5.3

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