Я реализую связанный список в Python.Почти во всех реализациях класс Node
используется отдельно от фактического класса LinkedList.Я пытаюсь сделать это в одном классе.
Итак, я бы хотел добавить три элемента, а затем распечатать их.Я предполагаю, что это потребует некоторой формы рекурсии.Здесь я добавляю два элемента (1.0 и -1.0), а затем распечатываю список.
ll = LinkedList(1.0)
ll.insert_front(-1.0)
print(ll._linkedlist)
#output
[-1.0, [1.0, None]]
Это выглядит хорошо.Обратите внимание, что последний элемент содержит второй элемент (1.0) и указатель, который указывает на None
- здесь показано как [1.0, None]
Тем не менее, каждый раз, когда я пытаюсь добавить третий элемент, он разбивается на части.
ll.insert_front(3.0)
[3.0, [-1.0, None]]
Я хотел бы получить следующий вывод:
[3.0, [-1.0, [1.0, None]]]
Есть идеи, как это сделать?Моя текущая реализация ниже.
class LinkedList(object):
"""A data structure implemented in Python.
"""
def __init__(self, head):
"""Initialize List."""
self.head = head
self.size = 1
self.next = None
self._linkedlist = [self.head, self.next]
empty_ll = None
def insert_front(self, element):
self.next = self.head
self.head = element
self.size += 1
self._linkedlist[0] = self.head
self._linkedlist[1] = [self.next, empty_ll]
#print out the head of the linked list
def __repr__(self):
return 'LinkedList(%s)' % (self.head)