class c: value = None next = None c1=c() c2=c() c3=c() ... c1.next = c2 c2.next = c3 ...
как сделать так, чтобы c3.next ссылался на c2, c2.next ссылался на c1.
количество c1,c2,c3… т.е. экземпляров класса не известно.
class c: value = None next = None c1=c() c2=c() c3=c() ... c1.next = c2 c2.next = c3 ...
#было c2.next = c3 c3.next = c4 .... #стало c3.next =c2 c4.next = c1 ....
class C: def __init__(self, value=None, prev=None, next=None): self.prev = prev self.next = next self.value = value first = last = C(0) for i in range(1, 10): c = C(i, last) last.next = c last = c c = first while c is not None: print c.value c = c.next
А вообще, непонятно чего хотите.есть односвязный список классов. в каждом классе есть ссылкаа на другой класс. мне надо развернуть данный односвязный список.
ilnur
мне надо развернуть данный односвязный список.
# -*- coding: utf-8 -*- class C: def __init__(self, value=None, next=None): self.next = next self.value = value # вот оно def reverse(node): new_root = None while node: next_node, node.next = node.next, new_root new_root, node = node, next_node return new_root first = last = C(0) for i in range(1, 10): c = C(i) last.next = last = c first = reverse(first) n = first while n: print n.value n = n.next
class c: value = None next = None c1 = c() c2 = c() c3 = c() c4 = c() c1.value = 'class c1' c1.next = c2 c2.value = 'class c2' c2.next = c3 c3.value = 'class c3' c3.next = c4 c4.value = 'class c4' c4.next = None classes = (c1, c2, c3, c4) print 'after' for i in classes: print i.value try: print i.next.value except AttributeError: print None except: print 'error' print '---' print '***************' print 'before' classes_nexts = [i.next for i in classes] classes_nexts.pop() classes_nexts.pop() classes_nexts.insert(0, c1) classes_nexts.insert(0, None) for n, i in enumerate(classes): i.next = classes_nexts[n] for i in classes: print i.value try: print i.next.value except AttributeError: print None except: print 'error' print '---'