def level_order_trav(self): q = Queue() if self: q.enqueue(self) while q.size > 0: n = q.dequeue() print n.value if n.leftChild: q.enqueue(n.leftChild) if n.rightChild: q.enqueue(n.rightChild)
def rev_level_order(r): if r is None: return None q = Queue() s = Stack() q.enqueue(r) while not q.is_empty(): n = q.dequeue() s.push(n) if n.rightChild: q.enqueue(n.rightChild) if n.leftChild: q.enqueue(n.leftChild) while not s.is_empty(): print str(s.pop().value)
bt = BinaryTree("A") bt.insertLeft("B") bt.insertRight("C") l = bt.getLeftChild() l.insertLeft("D") l.insertRight("E") r = bt.getRightChild() r.insertLeft("F") r.insertRight("G") q = Queue() q.enqueue(bt) n=None while q.size > 0: n = q.dequeue() print str(n.value) if n.leftChild: q.enqueue(n.leftChild) if n.rightChild: q.enqueue(n.rightChild) temp = bt.value