class BinaryTree: def __init__(self, root): self.root = root self.leftChild = None self.rightChild = None def setRoot(self, root): self.root = root def getRoot(self): return self.root def getLeftChild(self): return self.leftChild def getRightChild(self): return self.rightChild def insertLeftChild(self, newNode): if self.leftChild == None: self.leftChild = BinaryTree(newNode) else: t = BinaryTree(newNode) t.leftChild = self.leftChild self.leftChild = t def insertRightChild(self, newNode): if self.rightChild == None: self.rightChild = BinaryTree(newNode) else: t = BinaryTree(newNode) t.rightChild = self.rightChild self.rightChild = t '''recursive process for finding height of a binary tree''' def height(tree): if tree == None: return 0 else: return max(height(tree.leftChild),height(tree.rightChild)) + 1 '''iterative process for finding height of a binary tree''' def heightIterative(tree): height = 0 if tree == None: return 0 queue = [] queue.append(tree) queue.append("NULL") while ( queue != []): root = queue.pop(0) if root == "NULL": if queue != []: queue.append("NULL") height += 1 else: if root.getLeftChild(): queue.append(root.getLeftChild()) if root.getRightChild(): queue.append(root.getRightChild()) return height '''recursive process for finding size of a binary tree''' def size(tree): if tree == None: return 0 else: return size(tree.getLeftChild()) + 1+ size(tree.getRightChild()) if __name__ == "__main__": r = BinaryTree(5) r.insertLeftChild(6) r.insertRightChild(7) r.leftChild.insertLeftChild(12) r.leftChild.insertRightChild(54) r.rightChild.insertRightChild(63) print "Height of the tree is:", height(r) print "\n\n" print "size of the tree is:", size(r) print "\n\n" print "height of the tree is:", heightIterative(r) print "\n\n"
Pingback: Tree Walks and Traversals | codeatsociallywired
hey there and thank you for your info – I have definitely picked
up something new from right here. I did however expertise several
technical points using this web site, since I experienced to reload the web
site many times previous to I could get it to load correctly.
I had been wondering if your web hosting is OK?
Not that I am complaining, but sluggish loading instances times will very frequently
affect your placement in google and can damage your quality score if ads and marketing with Adwords.
Anyway I’m adding this RSS to my email and can look out for a lot more of your respective intriguing content. Ensure that you update this again very soon.
Good post. I learn something totally new and challenging on blogs I stumbleupon everyday.
It will always be exciting to read articles from other authors
and practice a little something from other websites.
Wow, awesome blog layout! How long have you been blogging
for? you make blogging look easy. The overall look of your website is wonderful, as well as the content!