class Node(object):
def __init__(self,val=None):
self.val = val
self.left = None
self.right = None
def preOrderUnRecur(head):
print('pre-order: ')
if head!=None:
stack = []
stack.append(head)
while stack:
head = stack.pop()
print(head.val,end=' ')
if head.right!=None:
stack.append(head.right)
if head.left!=None:
stack.append(head.left)
print('')
def inOrderUnRecur(head):
print('inOrder: ')
if head!=None:
stack = []
while stack or head!=None:
if head!=None:
stack.append(head)
head = head.left
else:
head = stack.pop()
print(head.val,end=' ')
head = head.right
print(' ')
def posOrderUnRecur(head):
print('posorder: ')
if head != None:
s1 = []
s2 = []
s1.append(head)
while s1 :
head = s1.pop()
s2.append(head)
if head.left != None:
s1.append(head.left)
if head.right != None:
s1.append(head.right)
while s2:
print(s2.pop().val,end=' ')
print(' ')