Рубрики
Без рубрики

Подробное объяснение стека

Стеки стеков являются результатом приближения к порядку LIFO (Последний вход, первый выход) с помощью списка… С пометкой codenewbie, учебник, java, обсуждение.

Стеки – это результат приближения к ЖИЗНИ (Последний вход, первый выход) порядок с поведением подключения к узлу списка. Это означает, что элементы внутри стека соединены как список, но добавляются и извлекаются в LIFO .

[1] Стек Lifo | https://commons.wikimedia.org/wiki/File:Lifo_stack.png

Исходя из этого, методы to, которые должны вызывать стек таким образом, – это pop , который удаляет верхний элемент из стека и возвращает его, и push , который добавляет новый элемент поверх стека.

Минимальные методы работы со стеками

– Поп

Java-реализация метода pop в стеке на основе массива

public Object pop() {
        if (!isEmpty()) {
            Object object = array[top];
            array[top--] = null;
            return object;
        } else {
            return null;
        }
    }

Как вы видите, после получения элемента в верхней части стека он немедленно удаляется из него.

– Толчок

Java-реализация метода push в стеке на основе массива

public boolean push(Object object) {
    if (top + 1 < size) {
        try {
            array[++top] = object;
            return true;
        } catch (Exception e) {
            System.out.println(e);
            return false;
        }
    } else {
        return false;
    }
}

– Заглянуть

В некоторых случаях пользователь может захотеть проверить значение, хранящееся в верхней части стека, не удаляя его. В этих сценариях полезен метод peek , поскольку он возвращает значение, не удаляя его из стека. Таким образом, и дополнительный толчок не нужен.

Java-реализация peek в стеке на основе массива

public Object peek() {
    return (!isEmpty()) ? array[top] : null;
}

Стеки на основе массивов и списков

Пример стека на основе массива, состоящего из четырех элементов. Он получит только четыре элемента, если достигнет максимальной длины, входящие значения не будут добавлены.

[2] Стек (структура данных) ЛИФО | [2] Стек (структура данных) ЛИФО |

Основное различие между стеком на основе массива и стеком, реализованным с использованием списков, заключается в том, что первый обычно реализуется со статическим размером, это означает, что он будет принимать только определенное количество элементов, другой позволит пользователю добавлять элементы до тех пор, пока память не заполнится.

Максимальный Экстремус Марек М 1
Оригинальный загрузчик: Производная работа Фиби: Марек М Марек М 2

Оригинал: “https://dev.to/dhhruv/explaining-stack-in-detail-4ohm”