RosettaCodeData/Task/Doubly-linked-list-Traversal/Python/doubly-linked-list-traversal-1.py
Ingy döt Net 764da6cbbb CDE
2013-04-10 16:57:12 -07:00

29 lines
613 B
Python

class List:
def __init__(self, data, next=None, prev=None):
self.data = data
self.next = next
self.prev = prev
def append(self, data):
if self.next == None:
self.next = List(data, None, self)
return self.next
else:
return self.next.append(data)
# Build the list
tail = head = List(10)
for i in [ 20, 30, 40 ]:
tail = tail.append(i)
# Traverse forwards
node = head
while node != None:
print(node.data)
node = node.next
# Traverse Backwards
node = tail
while node != None:
print(node.data)
node = node.prev