示例#1
0
 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)
示例#3
0
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