Я очень новичок в кодировании, и у меня есть основной вопрос о печати узла в двусвязном списке в Python.Печать узла в связанном списке
class Node():
def __init__(self, key = None, prev = None, next = None):
self.key = key
self.prev = prev
self.next = next
def __str__(self):
return ('[%s][%d][%s]' % (repr(self.prev), self.key, repr(self.next)))
Очевидно, что у меня тогда есть еще код для самого класса списка. Скажем, у меня есть дважды связанный список с двумя узлами:
node1: ключ 21
node2: ключ 10
голова -> node1 < ==> node2
Если я печатаю (узел1), я получаю:
[*location of prev node*][21][*location of next node*]
который работает exa Как я хочу.
Так 2 вопроса:
этот код "грязный" или приемлемый синтаксис для метода ул?
Вместо печати расположения предыда и следующих узлы, как бы я напечатать имен узлов вместо, например,
[node7][82][node9]
?
Надеюсь, что это имеет смысл и благодарит за любую помощь!
1. Это нормально. 2. У ваших узлов нет имен. Если вы хотите, чтобы у них были имена, вам нужно было бы использовать атрибут 'self.name'.Одним из свойств связанного списка является то, что индивидуальные ноэ не знают, где они находятся в списке, а только их соседи. –
* имена узлов * - по крайней мере, каждый экземпляр узла должен иметь атрибут 'name' – RomanPerekhrest
@PatrickHaugh спасибо за ваш ответ. ОК, поэтому, как только я создал узел, он не знает собственного имени ... Мне нужно настроить атрибут self.name, как вы сказали ... понял! Я предполагаю, что это не обычная практика, но потому, что не нужно печатать узлы в симпатичном формате. – greenslime