Стек — это линейная структура данных, которая следует определенному порядку выполнения операций. Порядок может быть LIFO (последним пришел, первым ушел) или FILO (первым пришел последним).

Мы создадим один класс с именем Stack, и он будет содержать три основных метода: peek(), push() и pop().

Как мы узнали о LinkedList ранее, мы собираемся использовать LinkedList для реализации стека.

Первое, что нужно сделать, это создать класс Node для создания нового узла.

После этого мы создаем класс с именем Stack и его конструктор. Когда мы инициируем класс Stack, мы устанавливаем top = null, bottom = null и length = 0.

Далее мы напишем наш первый метод с именем peek(). Просмотр — это метод возврата на вершину стека. Это так же просто, как вернуть this.top.

Следующий метод — push(). Push добавит данные в верхнюю часть стека. Мы создаем переменную с именем newNode для хранения нового узла. После этого делаем условие. Если this.length равно нулю, это означает, что в этом стеке нет значений. Итак, мы собираемся сделать this.top с новым узлом, а также this.bottom с новым узлом. Кроме того, мы создаем переменную с именем holdPointer для хранения этого. установите этот upSet this в top до newNode.top, рядом с указателем. Последний шаг — увеличить this.length.

Наконец, наш последний метод — pop(). Pop удалит точку данных из вершины стека. Первый шаг заключается в том, что мы должны убедиться, существует ли this.top или нет. После этого устанавливаем this.top. рядом с this.top и вычтите this.length

Вот и все. Это довольно просто, верно? ХД.

Это полный код стека.

Увидимся на Структуры данных и их создание с нуля (очередь) #5.