Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
15.02.2025
Размер:
1.24 Кб
Скачать
public class GenericStack<T> {
private T[] stack;
private int size;
private static final int INITIAL_CAPACITY = 10;

@SuppressWarnings("unchecked")
public GenericStack() {
stack = (T[]) new Object[INITIAL_CAPACITY];
size = 0;
}

public void push(T element) {
if (size == stack.length) {
resize();
}
stack[size++] = element;
}

public T pop() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
T element = stack[--size];
stack[size] = null; // Устранение возможной утечки памяти
return element;
}

public T peek() {
if (isEmpty()) {
throw new IllegalStateException("Stack is empty");
}
return stack[size - 1];
}

public boolean isEmpty() {
return size == 0;
}

public int size() {
return size;
}

@SuppressWarnings("unchecked")
private void resize() {
T[] newStack = (T[]) new Object[stack.length * 2];
System.arraycopy(stack, 0, newStack, 0, stack.length);
stack = newStack;
}
}
Соседние файлы в папке ПР-9