J'essaie d'insérer un nœud "item" en position "index" dans une liste chaînée, j'ai le code suivant et pour moi ça sonne bien, mais ce n'est pas fonctionne bien.insérer un nœud à la Nième position dans la liste chaînée en python
J'apprécierais vraiment si quelqu'un peut m'aider.
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
Et puis je:
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
Donc ici, je fais quelques tests:
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())
Et la sortie est:
-26-93-17-77-31-54
-26-93-17-77-31-54
Comme vous pouvez le voir le noeud n'est pas ajouté. Pouvez-vous s'il vous plaît me dire ce qui ne va pas avec mon code et comment je peux le réparer?
Je ne pense pas que nous ne avez pas besoin de la dernière ligne "current.setData = Temp "plus – Albert