У меня есть функция, где я должен переместить существующий код, напримерПеремещение узла в конце цепочки узлов
def print_chain_and_ids(chain):
current = chain
while current != None:
print(id(current), current.get_data())
current = current.get_next()
a = Node('first')
b = Node('middle')
c = Node('last')
a.set_next(b)
b.set_next(c)
print_chain_and_ids(a)
move_node_to_end(a, 'middle')
print_chain_and_ids(a)
так что теперь цепь идет:
a ----> b ----> c
с узлом c
в конце цепи.
Если бы я хотел, чтобы переместить узел b
до конца цепи так далее:
a ----> c ----> b
так, что она не изменяет значение последнего узла, а просто перемещает его вокруг. У меня есть класс узлов, готовый:
class Node:
def __init__(self, init_data):
self.data = init_data
self.next = None
def get_data(self):
return self.data
def get_next(self):
return self.next
def set_data(self, new_data):
self.data = new_data
def set_next(self, new_next):
self.next = new_next
def __str__(self):
return str(self.data)
Я хотел знать, как я буду заниматься этим.
Я хочу сделать, чтобы сделать функцию, которая принимает два входа, первый узел цепочки, а также значение, которое перемещается в последнее положение цепочки. Итак:
def node_to_end(first_node, value_to_move):
.....
Здесь я должен изменить положение узлов. Таким образом, значение для перемещения переходит к последней позиции.
a = Node('blue')
b = Node('red')
c = Node('green')
a.set_next(b)
b.set_next(c)
, который приведет к blue red green
node_to_end(a, 'red')
бы создать цепочку
blue green red
Спасибо за любую помощь.
Так что вы хотите 'c', чтобы указать на' b' и 'a' к точке' c' и 'b' указать ни в чем? Вы уже написали метод 'set_next', просто используйте его, чтобы указать, что вы хотите. Я не понимаю ваш вопрос. Прости. – MooingRawr
Я хочу, чтобы b указывал на c и c, чтобы указать на b. Я не хочу, чтобы значения b и c меняли только позицию. –
В настоящее время 'b = a.next' и' c = a.next.next'. Теперь выполните: 'a.next = c'; 'C.next = b'; 'b.next = None' –