def returnBFS(self): keys = [] bfsQ = Queue() bfsQ.enQueue(self.root) cur = bfsQ.deQueue() while cur: keys.append(cur.key) if (cur.left): bfsQ.enQueue(cur.left) if (cur.right): bfsQ.enQueue(cur.right) cur = bfsQ.deQueue() return keys
def traverseBFS(self): string = "" bfsQ = Queue() bfsQ.enQueue(self.root) cur = bfsQ.deQueue() while cur: string += ("\n%s - (%s|%s, %s)" % (cur.key, cur.parent.key if cur.parent else None, cur.left.key if cur.left else None, cur.right.key if cur.right else None)) if (cur.left): bfsQ.enQueue(cur.left) if (cur.right): bfsQ.enQueue(cur.right) cur = bfsQ.deQueue() if (string == ""): string = "(Empty)" return string
def __init__(self): self.root = None self.current = None self.queue = Queue() self.past = Stack()