/
ProjectEroxa
/
hw_17
Обзор
Документация
Войти
/
ProjectEroxa
/
hw_17
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
LinkedStack.java
59 строк
2 KB
Евгений Ерошкин
upload files
02 июл 2025, 17:14
02 июл 2025, 17:14
0147bb2
Код
Авторство
О чём код?
public class LinkedStack { private Node tail; // ссылка на последний добавленный узел (обёртку) private int size; // размер стека, т.е. количество элементов в нём public void push(int value) { Node node = new Node(value); // создаём новый узел if (tail != null) { // если в стеке уже есть элементы node.setPrev(tail); // связываем новый узел с последним } tail = node; // назначаем новый узел последним узлом size++; // увеличиваем счётчик элементов } public int pop() { // ваш код // возьмите value из последнего узла int lastValue = tail.getValue(); // назначьте предыдущий к последнему узлу последним узлом tail = tail.getPrev(); size--; return lastValue; } public int getSize() { // ваш код // верните размер стека return size; } public boolean isEmpty() { // ваш код // верните ответ на вопрос, не пустой ли стек return size == 0; } public String toString() { // если есть элементы, пройдитесь по связному списку, // выводя элементы. // вывод должен быть в точности как в комментариях к main // при этом этот метод не должен менять стек! if (LinkedStack.this.isEmpty()) { return "EMPTY"; } else {// если стек не пуст StringBuilder sb = new StringBuilder(); int count = size; Node currentNode = tail; while (count > 0 && currentNode != null) { sb.append(currentNode.getValue()); if (count > 1) { sb.append(" -> "); } count--; currentNode = currentNode.getPrev(); } return sb.toString(); } } }