树的前序中序后序非递归遍历

    xiaoxiao2025-06-20  13

    class Tree: # def __init__(self): # pass def __init__(self, data=None, left=None, right=None): self.data = data self.left = left self.right = right def firsttraverse(t): l = [] while t or l: # print l if(t): print t.data, l.append(t) t = t.left else: t = l.pop() t = t.right def midtraverse(t): l = [] while t or l: # print l if(t): l.append(t) t = t.left else: t = l.pop() print t.data, t = t.right def lasttraverse(t): l = [] mark = None while(t or len(l)!=0): # print l while t: l.append(t) t = t.left t= l.pop() if not t.right or t.right == mark: print t.data, mark = t t = None else: l.append(t) t = t.right t = Tree('-',Tree('*',Tree('a'),Tree('b')),Tree('/',Tree('d'),Tree('e'))) # t= Tree() firsttraverse(t) print '----------' midtraverse(t) print '----------' lasttraverse(t)
    转载请注明原文地址: https://ju.6miu.com/read-1300130.html
    最新回复(0)