在Python中实现没有节点类的链接列表

时间:2018-10-28 01:54:06

标签: python python-3.x data-structures

我正在用Python实现链接列表。几乎所有实现都与实际的LinkedList类分开使用Node类。我正在尝试在一个班级里做。

所以我想要能够添加3个元素,然后将它们打印出来。我的猜测是,这将需要某种形式的递归。在这里,我添加了两个元素(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) 

0 个答案:

没有答案