Mon professeur m'a demandé d'effectuer un tour rapide pour une liste liée. Cela devient assez déroutant car toute la récursion et les liens sont toujours très nouveaux pour moi. Le problème semble être avec quelque chose d'attribuer involontairement comme aucun
Ceci est mon code jusqu'à présent: exécutant cela donne l'erreur suivante p> toute aide serait très appréciée p> p>
4 Réponses :
Lisez attentivement vos codes d'erreur. Il dit
File "main.py", line 51, in sort while ptr.next!=None: AttributeError: 'NoneType' object has no attribute 'next'
vous triez () La fonction échoue car mais l'appel à Lorsque cela se produit, vous obtenez la stacktrace que vous avez affichée où il est indiqué: p> PTR code> ne peut être pas lorsque vous arrivez à votre boucle.
Ce n'est pas évident d'abord à cause de votre chèque au début
self.removeval (pivot) code> définira votre pointeur de tête sur aucun si La liste n'a qu'une entrée.
Notez que cela se produira toujours lors de votre QuickSort éventuellement, car vous décomposez votre liste de manière récursive. Finalement, il doit s'agir d'une liste de 1 élément et donc échouer. P>
self.head = smaller.head
Merci beaucoup pour votre réponse claire et détaillée.
Comme commenté ci-dessus, assurez-vous que l'approche présentée dans la question sera acceptable comme étant un tour rapide. Vous pourriez envisager de créer 3 listes, des nœuds
Voici le code complet sortie p>
Vous ne vérifiez pas si des éléments se retrouvent plus petits ou autres. Chacun peut être vide si la tête est plus grande / plus petite que tous les autres éléments.
Le code de questions est similaire dans le concept de Quicksort, mais ce n'est pas rapide, ce qui impliquerait un échange de nœuds. Assurez-vous que cette approche est acceptable pour le professeur.