# -*- coding: UTF-8 -*-
from __future__ import print_function
deep = 3
#二叉樹*******************************start
L = []
LW = []
class TreeNode(object):
def __init__(self,data,left,right):
self.data = data
self.left = left
self.right = right
def add_tree_node(tn,count=1):
_deep = tn.data['deep']
if _deep < deep:
#右子孫
# print(_deep)
temp = TreeNode({'deep':_deep+1,'node_num':count+1}, None, None)
tn.right = temp
print(tn.data['node_num'])
count = add_tree_node(temp,count+1)
#左子孫
temp = TreeNode({'deep':_deep+1,'node_num':count+1},None,None)
tn.left = temp
print(tn.data['node_num'])
count = add_tree_node(temp,count+1)
return count
stack = []
def deep_travel_tree(tn):
#讀取目前節點并壓入棧
L.append(tn.data['node_num'])
if tn.right != None:
deep_travel_tree(tn.right)
if tn.left != None:
deep_travel_tree(tn.left)
return
def width_travel_tree(tn):
#壓入節點
LW.append(tn.data['node_num'])
if tn.right != None and tn.left != None:
stack.append(tn.right)
stack.append(tn.left)
if len(stack)!=0:
temp = stack.pop(0)
width_travel_tree(temp)
return
def main():
root = TreeNode({'deep':1,'node_num':1},None,None)
add_tree_node(root)
deep_travel_tree(root)
width_travel_tree(root)
print(L)
print(LW)
main()