1 '''
2 Created on 14/06/2013
3
4 @author: david.vilares
5 '''
6
7
9
11
12 self.left = None
13 self.right = None
14 self.data = data
15 self.key = key
16
21
23
24 return Node(key,data)
25
26 - def insert(self, root, key, data):
27
28 if root == None:
29
30
31 self.root = self.addNode(key,data)
32 return self.addNode(key,data)
33 else:
34
35 if key <= root.key:
36
37
38 root.left = self.insert(root.left, key,data)
39 else:
40
41 root.right = self.insert(root.right, key,data)
42 return root
43
45
46 if root == None:
47 pass
48 else:
49 self.printTree(root.left)
50 print root.key,
51 self.printTree(root.right)
52
53
54 - def lookup(self, root, target):
55
56 if root == None:
57 return 0
58 else:
59
60 if target == root.key:
61 return 1
62 else:
63 if target < root.key:
64
65 return self.lookup(root.left, target)
66 else:
67
68 return self.lookup(root.right, target)
69
70
72 if root == None:
73 return None
74 if target.startswith(root.key):
75 if target < root.key:
76
77 return self.search_longest_match(root.right, target)
78 else:
79 return root.data
80 else:
81 if target < root.key:
82 return self.search_longest_match(root.left,target)
83 else:
84 return self.search_longest_match(root.right, target)
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101