Python learning-binary tree traversal and python binary tree traversal
Import OS, sys
Class node:
Def _ init _ (self, item ):
Self. num = item
Self. lchild = None
Self. rchild = None
Class tree:
Def _ init _ (self ):
Self. root = None
Def add (self, ii ):
Inode = node (ii)
If self. root is None:
Self. root = inode
Else:
P = [self. root]
Iipp = 0
While 1:
Ip = p [iipp]
# Print ip
Iipp = iipp + 1
If ip. lchild is None:
Ip. lchild = inode
Return
Elif ip. rchild is None:
Ip. rchild = inode
Return
Else:
P. append (ip. lchild)
P. append (ip. rchild)
Def lorder (self, node1 ):
L = []
If node1 is not None:
L. append (node1.num)
Ll = self. lorder (node1.lchild)
L = l + ll
# L. append (ll) # With Structure
Rl = self. lorder (node1.rchild)
# L. append (rl) # With Structure
L = l + rl
Return l
Def morder (self, node2 ):
M = []
If node2 is not None:
Lm = self. morder (node2.lchild)
M = m + lm
M. append (node2.num)
Rm = self. morder (node2.rchild)
M = m + rm
Return m
Def rorder (self, node3 ):
R = []
If node3 is not None:
Lr = self. rorder (node3.lchild)
R = r + lr
Rr = self. rorder (node3.rchild)
R = r + rr
R. append (node3.num)
Return r
If _ name _ = '_ main __':
T = tree ()
For I in range (1, 10 ):
T. add (I)
Print t. lorder (t. root) # first traverse
Print t. morder (t. root) # sequential Traversal
Print t. rorder (t. root) # post-order traversal