我有两个文件用于生成单链列表。
第一个文件有两个类。一个创建头,另一个添加头。现在的第二个,打开文件,读取文件,然后将每个单词放入我的insert函数中,insert函数从中创建一个节点。
我的问题是我的插入函数需要'self'和'x',即使我在另一个文件上定义了该类,也不需要它,对吧?
这是我另一个文件的代码(现在我正在测试,因此它只是想在我的插入函数中插入一个单词)。
Linked_List
node = Linked_List_node
node.insert('insert_this_into_function')
这就是我的班级样子。 (此外,我不确定第一行-Linked_List。我知道我需要以某种方式创建头节点,但无法弄清楚该怎么做。
class Linked_List:
def __init__(self):
self.head = None
class Linked_List_node:
def __init__(self, value):
self.name = value
self.next = None
def print(self):
p = self.head
while p is not None:
p.print()
p = p.next
def insert(self, x):
""""""
p = self.head
q = None
done = False
while not done:
if self.head == None:
t = Linked_List_node(x)
self.head = t
self.head = Linked_List_node(x)
done = True
elif p == None:
t = Linked_List_node(x)
q.next = t
done = True
elif x < p.data:
if self.head == p:
t = Linked_List_node(x)
t.next = p
self.head = t
done = True
else:
t = Linked_List_node(x)
t.next = p
q.next = t
done = True
q = p
p = p.next
答案 0 :(得分:0)
我已经稍微修正了您的课程。首先,Linked_List_node将具有data
和next
属性。
class Linked_List_node:
def __init__(self, value):
self.data = value
self.next = None
然后我们将拥有Linked_List
,该节点将保留以下节点列表。对于插入,我们通过检查if p!= None: p = p.next
class Linked_List:
def __init__(self):
self.head = None
def print(self):
#Iterate till you reach end of linked list
p = self.head
while p is not None:
#print data
print(p.data)
p = p.next
def insert(self, x):
""""""
p = self.head
q = None
done = False
while not done:
if self.head == None:
t = Linked_List_node(x)
self.head = t
self.head = Linked_List_node(x)
done = True
elif p == None:
t = Linked_List_node(x)
q.next = t
done = True
elif x < p.data:
if self.head == p:
t = Linked_List_node(x)
t.next = p
self.head = t
done = True
else:
t = Linked_List_node(x)
t.next = p
q.next = t
done = True
q = p
#We reach the end of linked list to insert when we hit None
if p!= None:
p = p.next
然后我像下面这样调用类。
head = Linked_List_node(1)
ll = Linked_List()
ll.head = head
ll.insert(2)
ll.insert(3)
ll.print()
#1
#2
#3