我遇到的問題是我的鏈表實作,它根本不想識別我的論點。讓我向您展示代碼以說明我的意思:
class Node:
def __init__(self, element:int):
self.element = element
element:int = 0
nextNode = None
class LinkedList:
head:Node = None
def insert(self, element:int):
if self.head == None:
currentNode = Node.__init__(element)
self.head = currentNode
else:
currentNode = self.head
while currentNode.nextNode != None:
currentNode = currentNode.nextNode
newNode = Node.__init__(element)
currentNode.nextNode = newNode
def prettyPrint(self):
currentNode = self.head
print("Current Linked List\n")
while currentNode.nextNode != None:
print(currentNode.element " ---> ")
currentNode = currentNode.nextNode
def main():
Linkedlist = LinkedList()
Linkedlist.insert(1)
Linkedlist.insert(9)
Linkedlist.insert(2)
Linkedlist.insert(18)
Linkedlist.insert(5)
Linkedlist.insert(8)
Linkedlist.prettyPrint()
if __name__ == '__main__':
main()
錯誤發生在插入方法中
當前節點 = 節點。初始化(元素)
我是 Python 新手,因此感謝您提供任何幫助。
uj5u.com熱心網友回復:
這是您的代碼,有兩個小修復:
Node通過呼叫構造 aNode(element)- 在
print單獨的引數中使用 a,或用于end="something"告訴print將 a"something"放在輸出的末尾。
class Node:
def __init__(self, element: int):
self.element = element
element: int = 0
nextNode = None
class LinkedList:
head: Node = None
def insert(self, element: int):
if self.head == None:
currentNode = Node(element)
self.head = currentNode
else:
currentNode = self.head
while currentNode.nextNode != None:
currentNode = currentNode.nextNode
newNode = Node(element)
currentNode.nextNode = newNode
def prettyPrint(self):
currentNode = self.head
print("Current Linked List\n")
while currentNode.nextNode != None:
print(currentNode.element, end=" ---> ")
currentNode = currentNode.nextNode
def main():
Linkedlist = LinkedList()
Linkedlist.insert(1)
Linkedlist.insert(9)
Linkedlist.insert(2)
Linkedlist.insert(18)
Linkedlist.insert(5)
Linkedlist.insert(8)
Linkedlist.prettyPrint()
if __name__ == "__main__":
main()
玩得開心學習 python ;)
uj5u.com熱心網友回復:
正如我在評論中提到的,替換currentNode = Node.__init__(element)為 currentNode = Node(element).
另外,我建議將您的Node課程更改為這樣的課程。
class Node:
def __init__(self, element:int):
self.element = element
self.nextNode = None
此外prettyPrint(),您的方法中還有另一個問題。
首先,你會TypeError因為線,print(currentNode.element " ---> ").
其次,您沒有列印鏈表的最后一個元素。所以,print(currentNode.element)在while loop.
所以,我會把它改成這樣的,以獲得你想要的輸出。
def prettyPrint(self):
currentNode = self.head
print("Current Linked List\n")
while currentNode.nextNode != None:
print(currentNode.element, end=' ---> ')
currentNode = currentNode.nextNode
print(currentNode.element)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492966.html
上一篇:所有點都在一個矩形內嗎?
