[Tutor] binary trees/ linked lists
alan.gauld@bt.com
alan.gauld@bt.com
Thu, 3 Oct 2002 11:32:24 +0100
> Is there anything like a linked list
A Python list is like a linked list....
> binary tree
You have to do that yourself. Either using a list or
dictionary or by creating node classes...
Lutz describes the process in his book
Programming Python (1st Ed.)
There's rarely any need for a true linked list in Python,
since the built in list does it all for you however trees
can be useful.
Some tree pseudocode:
class Node:
def __init__(self,data,ltree=None,rtree=None)
self.data = data
self.ltree = ltree
self.rtree = rtree
def add(self,node):
if cmp(node.data,self.data) <= 0:
if self.ltree: self.rtree.add(node)
else self.ltree = node
else:
if self.ltree: self.ltree.add(node)
else self.ltree = node
def find(self,data):
if self.data == data: return self
elif data <= self.data:
if self.rtree: return self.rtree.find(data)
else: return None
else:
if self.ltree: return self.ltree.find(data)
else: return None
root = Node(5)
root.add(Node(2))
root.add(Node(1))
root.add(Node(7))
print root.find(5)
print root.find(7)
Something like that...
Alan g.