Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的LinkedList代码_Python - Fatal编程技术网

python中的LinkedList代码

python中的LinkedList代码,python,Python,我对Python非常陌生。我正在尝试创建一个LinkedList。未显示任何错误,但未显示任何内容。当我尝试调试时。程序正在退出,没有发生任何事情。无法理解问题所在。您不应该设置node.next=self.head。您应该维护一个指向头部和尾部的指针。我已经修改了下面的代码 __author__ = 'jarvis' class Node: def __init__(self, num): self.next = None self.data = num

我对Python非常陌生。我正在尝试创建一个LinkedList。未显示任何错误,但未显示任何内容。当我尝试调试时。程序正在退出,没有发生任何事情。无法理解问题所在。

您不应该设置node.next=self.head。您应该维护一个指向头部和尾部的指针。我已经修改了下面的代码

__author__ = 'jarvis'
class Node:
    def __init__(self, num):
        self.next = None
        self.data = num

class LList:
    def __init__(self, h=None):
        self.head = None

    def insert_node(self, num):
        node = Node(num)
        if self.head is None:
            self.head = node
        else:
            node.next = self.head
            self.head = node

    def print_list(self):
        node = self.head
        while not (node is None):
            print node.data
            node = node.next

lis = LList()
lis.insert_node(10)
lis.insert_node(20)
lis.insert_node(30)
lis.print_list()

我能够让这个项目运作起来。如何运行该程序?现有代码只是将节点插入列表的前面。很好,我想如果他想要一堆。不是LinkedList:),但仍然没有打印任何内容。为什么我需要维护另一个尾部指针
node.next=self.head
,此语句是否无效。因此它取决于您尝试执行的操作。您想要一个以FIFO或LIFO顺序维护元素的列表吗?您的实现将元素添加到作为堆栈的列表的前面。尽管如此,您是如何运行代码的?我已经测试了代码,它运行良好。我使用LIFO来维护元素。我正在使用Pycharm执行我的代码。运行代码时没有显示错误。但是在我的代码中,我正在执行函数
print\u list
,它应该打印列表。但是当我执行代码时,列表不会被打印出来。
class Node:
    def __init__(self, num):
        self.next = None
        self.data = num

class LList:
    def __init__(self, h=None):
        self.head = None
        self.tail = None

    def insert_node(self, num):
        node = Node(num)
        if self.head is None:
            self.head = node
            self.tail = self.head
        else:
            self.tail.next= node
            self.tail = node

    def print_list(self):
        node = self.head
        while not (node is None):
            print node.data
            node = node.next