1
我想在鏈接列表中的位置「index」中插入節點「item」,我有以下代碼,對我來說聽起來不錯,但它不是正確的工作。在python鏈接列表中的第N個位置插入一個節點
我真的很感激,如果有人可以幫助我。
class Node:
def __init__(self,initdata):
self.data = initdata
self.next = None
def getData(self):
return self.data
def getNext(self):
return self.next
def setData(self,newdata):
self.data = newdata
def setNext(self,newnext):
self.next = newnext
然後我有:
class UnorderedList:
def __init__(self):
self.head = None
def isEmpty(self):
return self.head ==None
def add(self,newdata):
Temp = Node(newdata)
# What happens here: the Temp.Next is going to connect to the place that head is connected to
Temp.setNext(self.head)
self.head = Temp
def printl(self):
current = self.head
i=""
while current.getNext() != None:
i =i+ "-"+str(current.getData())
current= current.getNext()
i =i+ "-"+str(current.getData())
return i
def insert(self,item,index):
current = self.head
counter = 0
Temp = Node(item)
Prev = None
if index == 0:
Temp.setNext(self.head)
self.head = Temp
else:
while counter < index:
Prev = current
current = current.getNext()
counter = counter + 1
Temp.setNext(Prev.getNext())
Prev.setNext(Temp.getNext())
current.setData = Temp
所以我在這裏做了一些測試:
mylist = UnorderedList()
mylist.insert(54,0)
mylist.add(31)
mylist.add(77)
mylist.add(17)
mylist.add(93)
mylist.add(26)
print(mylist.printl())
mylist.insert(12,2)
print(mylist.printl())
,輸出是:
-26-93-17-77-31-54
-26-93-17-77-31-54
正如你所看到的節點不被添加。 你能告訴我我的代碼有什麼問題,以及我如何修復它?
我不認爲我們不需要最後一行「current.setData = Temp 「 – Albert