LinkedStacks в python - PullRequest
       0

LinkedStacks в python

0 голосов
/ 11 апреля 2020

enter image description here

Этот код предназначен для стека, использующего одиночные связанные списки

Из 27 и 30 я не понимаю, что происходит

Допустим, я делаю это

a=LinkedStack()
a.push(1)
a.push(2)
a.push(3)

В первом pu sh a._head._element = 1 и a._head._next = 1

Во втором pu sh a. _head._element = 2 и a._head._next = a.head

Разве это не абсурд

Я не понимаю этого Пожалуйста, помогите Любая помощь приветствуется

1 Ответ

1 голос
/ 11 апреля 2020
self._head = self._Node(e, self._head)

Это может быть разбито на

new_head = self._Node(e, self._head)  # Step 1

self._head = new_head  # Step 2

Обратите внимание, что дано новой голове: старая голова, которая содержит весь список.

Если бы у вас был такой список, как

9 -> 8 -> 7

И вы подтолкнули 1 к нему, вы получите

1 -> 9 -> 8 -> 7

«Шаг 1» выше говорит: «Возьми старую голову и сделай ее хвостом новый руководитель ". Данные не теряются, они просто сохраняются в self._head._next вместо self._head.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...