(Структуры данных) Перемещение четных чисел на обратную сторону связанного спискаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 (Структуры данных) Перемещение четных чисел на обратную сторону связанного списка

Сообщение Anonymous »

Я только начал структуры данных моего колледжа и курс алгоритма, и у меня возникли проблемы с изменением узлов даже значений в заднюю часть моего связанного списка. По какой -то причине функция, кажется, работает, когда присутствует только одно четное число, но ничто не в конечном итоге распечатывается иначе. Пытаюсь отладить, но я терплю неудачу): < /p>

Код: Выделить всё

class Node:
def __init__(self, data):
self.data = data
self.next = None

class LinkedList:
def __init__(self):
self.head = None

def display(self):
current = self.head
while current:
print(current.data, end = " -> ")
current = current.next
print("None")

def move_even_items_to_back(self):
# Find the last node
last_node = self.head
while last_node.next:
last_node = last_node.next

current = self.head
prev = Node(None)
prev.next = self.head

while current:
if current.data % 2 == 0:
temp = current.next

# Add the node to the back
newNode = Node(current.data)
newNode.next = None
last_node.next = newNode
last_node = last_node.next

# Moving the previous node
if prev:  # Not the head
prev.next = current.next
else:  # Move head
self.head = current.next

# Removing current node
current.next = None

# Moving on
current = temp

else:
prev = current
current = current.next

node1 = Node(2)
node2 = Node(3)
node3 = Node(4)
node4 = Node(7)
node5 = Node(15)
node6 = Node(18)

ll = LinkedList()
ll.head = node1
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = node5
node5.next = node6

ll.display()
ll.move_even_items_to_back()
ll.display()

Я попытался использовать текущую переменную и перенести ее непосредственно на заднюю , а затем удаление исходного узла из списка, но оба не работали, и ничего не отображалось.

Подробнее здесь: https://stackoverflow.com/questions/794 ... inked-list
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»