Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Stack<T> implements StackInterface<T> {
- private int size;
- private int top = -1;
- private T[] stackArr;
- @SuppressWarnings("unchecked")
- private Stack() {
- size = 16;
- stackArr = (T[]) new Object[size];
- }
- @SuppressWarnings("unchecked")
- private Stack(int curSize) {
- size = curSize;
- stackArr = (T[]) new Object[size];
- }
- public void push(T entry) {
- if (isFull()) {
- System.out.println("Бля, щас как расширю");
- ensureCapacity();
- }
- System.out.println("Adding: " + entry);
- stackArr[++top] = entry;
- }
- public T pop() throws Exception {
- if (isEmpty()) {
- throw new Exception("Бля, ну ты и долбоёб");
- }
- T entry = stackArr[top--];
- System.out.println("Removed entry: " + entry);
- return entry;
- }
- public T peek() {
- return stackArr[top];
- }
- @SuppressWarnings("unchecked")
- private void ensureCapacity() {
- T[] newStack = (T[]) new Object[2 * size];
- if (size >= 0) {
- System.arraycopy(stackArr, 0, newStack, 0, size);
- }
- size *= 2;
- stackArr = newStack;
- }
- public boolean isEmpty() {
- return (top == -1);
- }
- public boolean isFull() {
- return (top == size - 1);
- }
- public int size() {
- return size;
- }
- public static void main(String[] args) {
- Stack<Object> integerStack = new Stack<>(4);
- for (int i = 1; i <= 17; i++) {
- integerStack.push(i);
- }
- System.out.println(integerStack.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement