def inOrderNoRecursivo(a): s = [] pi = [a] pr = [] pd = [] while not (pi == [] and pr == [] and pd == []): seApilo = pi != [] and not tope(pi).esNil() and not tope(pi).esHoja() if pi != []: arbol = pi.pop() if arbol.esNil(): pass elif arbol.esHoja(): s.append(arbol.valor) else: pi.append(arbol.izq) pr.append(arbol.valor) pd.append(arbol.der) if pr != [] and not seApilo: s.append(pr.pop()) if pd != [] and not seApilo: # pd != [] arbol = pd.pop() if arbol.esNil(): pass elif arbol.esHoja(): s.append(arbol.valor) else: pi.append(arbol.izq) pr.append(arbol.valor) pd.append(arbol.der) return s