I eine Funktion haben, wo ich einen vorhandenen Code beispielsweise bewegeneinen Knoten an das Ende einer Kette von Knoten bewegen
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)
so dass nun die Kette geht:
a ----> b ----> c
mit dem Knoten c
am Ende der Kette.
Wenn ich wollte den Knoten b
bis zum Ende der Kette bewegen, so geht es:
a ----> c ----> b
so, dass es nicht den Wert des letzten Knotens ändert sich aber gerade bewegt er sich um. Ich habe eine Knoten-Klasse bereit:
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)
Ich wollte wissen, wie ich das tun würde.
Ich möchte machen, um eine Funktion zu machen, die zwei Eingänge, der erste Knoten der Kette, und auch der Wert, der auf die letzte Position der Kette bewegt. Also:
def node_to_end(first_node, value_to_move):
.....
Hier muss ich die Position der Knoten ändern. Dieser zu bewegende Wert geht also zur letzten Position.
a = Node('blue')
b = Node('red')
c = Node('green')
a.set_next(b)
b.set_next(c)
, die in blue red green
node_to_end(a, 'red')
führen würde würde eine Kette von
blue green red
Danke für jede Hilfe erstellen.
So mögen Sie 'c' auf 'b' zeigen und 'a' zu Punkt 'c' und 'b' auf nichts zeigen? Sie haben bereits eine 'set_next'-Methode geschrieben, benutzen Sie sie einfach, um sie auf das zu zeigen, was Sie wollen ... Ich verstehe Ihre Frage nicht. Es tut uns leid. – MooingRawr
Ich möchte, dass b auf c und c zeigt, um auf b zu zeigen. Ich möchte nicht, dass die Werte von b und c nur die Position ändern. –
Zur Zeit 'b = a.next' und' c = a.next.next'. Jetzt tun: 'a.next = c'; 'c.next = b'; 'b.next = None' –