Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Pila<ELEMENT> {
- private final static Integer defaulDimension = 100;
- private ELEMENT [] data;
- private Integer contador;
- public Pila() {
- this(Pila.defaulDimension);
- }
- // @SuppressWarnings("unchecked")
- public Pila(Integer dimension) {
- if (dimension <= 0) {
- throw new RuntimeException("La cantidad de elementos en la pila debe ser positiva");
- }
- this.data = (ELEMENT []) new Object[dimension];
- this.contador = 0;
- }
- public boolean empty() {
- return this.contador <= 0;
- }
- public ELEMENT peek() {
- if (this.empty()) {
- throw new RuntimeException("La pila está vacía...");
- }
- return this.data[this.contador - 1];
- }
- public ELEMENT pop() {
- if (this.empty()) {
- throw new RuntimeException("La pila está vacía...");
- }
- --this.contador;
- return this.data[this.contador];
- }
- public ELEMENT push(ELEMENT element) {
- if (this.size() >= this.data.length) {
- // throw new RuntimeException("La pila está llena...");
- // @SuppressWarnings("unchecked")
- ELEMENT [] temp = (ELEMENT []) new Object[this.data.length * 2];
- for (int i = 0; i < this.data.length; ++i) {
- temp[i] = this.data[i];
- }
- this.data = temp;
- }
- this.data[this.contador] = element;
- ++this.contador;
- return element;
- }
- public int search(Object object) {
- for (int pos = this.contador - 1; pos >= 0; --pos) {
- if (this.data[pos].equals(object)) {
- return this.contador - pos;
- }
- }
- return -1;
- }
- public int size() {
- return this.contador;
- }
- @Override
- public String toString() {
- if (this.size() <=0) {
- return "";
- }
- StringBuilder sb = new StringBuilder();
- sb.append("[" + this.data[0].toString());
- for (int i = 1; i < this.size(); ++i) {
- sb.append(", " + this.data[i].toString());
- }
- sb.append("]");
- return sb.toString();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement