Так что мне нужно, чтобы данные были отсортированы по убыванию. Таким образом, указатель на самое низкое значение будет указывать на следующее самое высокое и так далее, и так далее. Пока что он просто указывает на следующий вставленный независимо от данных.
Мне нужно, чтобы он был отсортирован по мере добавления каждого значения
Код:
def AppendNode(self, node):
if self._isleagl(node): #just a error checking method
if self.list_start == None: #checks if list is empty
self.list_start = node
node._set_pointer(None)
else: #list not empty
item = self.list_start
while item:
if item == node: #Checks for duplicates
print("This is not allowed")
elif item._get_pointer() is None: #If it is end of the List
item._set_pointer(node)
node._set_pointer(None)
break
else: #incrimets to the next node via pointer
item = item._get_pointer()
Текущийвывод:
Index Data Pointer
0 1 1
1 6 2
2 3 3
3 7 None
Требуемый вывод:
Index Data Pointer
0 1 2
1 6 3
2 3 1
3 7 None
РЕДАКТИРОВАТЬ:
Так что я сделал это, однако она все еще не работает. Я думаю, что это связано с утверждениями elif.
elif item.data < node.data:
node._set_pointer(item._get_pointer())
item = item._get_pointer()
break
elif item.data > node.data:
item._set_pointer(node)
item._get_pointer()
break