Реализовать связанный список без класса Node в Python - PullRequest
0 голосов
/ 28 октября 2018

Я реализую связанный список в 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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...