Стек/Stack

Одной из самых простых абстрактных структур даных есть Стек. Стек работает по принцыпу "последний зашел первый ушел" (LIFO - last in first out). Это механизм с которым вы все сталкивались в детстве, когда мыли посуду. Стопка посуди - это жизненная реализация стека. Последняя тарелка, которая ложится в стопку, моется первой.
С помощью стека реализуется много задач. Одной из таких есть задача о правильная скобочная последовательность.
Стек поддерживает две основные операции: pop i push. push - вставляет в конец массива нужный элемент. pop - выдаляет последний элемент з массива и возвращает его. Конечно можно расширять функционал структуры. Если использовать простые типы даных, то стек, конечно, реализуется с помощью массивов.

Моя реализация Стека на Java:

public class Stack {
	private int[] elements;
	private int size;
	private int current;
	
	public Stack(int size) {
		this.size = size;
		this.elements = new int[this.size];
		this.current = 0;
	}
	
	public void push(int e) {
		if (elements.length == this.current) {
			throw new ArrayIndexOutOfBoundsException("Stack is overflow");
		} else {
			this.elements[this.current] = e;
			this.current++;
		}
	}
	
	public int pop() {
		if (this.current == 0) {
			throw new IllegalArgumentException("Can't handle zero-length arrays.");
		} else {
			this.current--;
			return this.elements[this.current];
		}
	}
}
LikeMe: