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