fileopen=open("in_sec21_19.txt","r") j=fileopen.readline().rstrip("\n").split(",") class Node: def __init__(self, element): self.element = element self.left = self.right = None def equals(self, node): return self.element == node.element class SplayTree: def __init__(self): self.root = None self.header = Node(None) def insert(self, element): if (self.root == None): self.root = Node(element) return element self.splay(element) if self.root.element == element: # If the element is already there in the tree, don't do anything. return n = Node(element) if element < self.root.element: n.left = self.root.left n.right = self.root self.root.left = None else: n.right = self.root.right n.left = self.root self.root.right = None self.root = n print self.root.element def remove(self, element): self.splay(element) if element != self.root.element: raise 'element not found in tree' # Now delete the root. if self.root.left== None: self.root = self.root.right else: x = self.root.right self.root = self.root.left self.splay(element) self.root.right = x def findMin(self): if self.root == None: return None x = self.root while x.left != None: x = x.left self.splay(x.element) return x.element def findMax(self): if self.root == None: return None x = self.root while (x.right != None): x = x.right self.splay(x.element) return x.element def find(self, element): if self.root == None: return None self.splay(element) if self.root.element != element: return None return self.root.element def isEmpty(self): return self.root == None def splay(self, element): l = r = self.header t = self.root self.header.left = self.header.right = None while True: if element < t.element: if t.left == None: break if element < t.left.element: y = t.left t.left = y.right y.right = t t = y if t.left == None: break r.left = t r = t t = t.left elif element > t.element: if t.right == None: break if element > t.right.element: y = t.right t.right = y.left y.left = t t = y if t.right == None: break l.right = t l = t t = t.right else: break l.right = t.left r.left = t.right t.left = self.header.right t.right = self.header.left self.root = t return self.root x=SplayTree() for i in j: x.insert(i) j=x.findMax() k=x.findMin() isEmpty=x.isEmpty() Find=x.find("2") print j,k,isEmpty,Find