# python 生成满二叉树并进行深度优先搜索和宽度优先搜索

```# -*- 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

_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'])
#左子孙
temp = TreeNode({'deep':_deep+1,'node_num':count+1},None,None)
tn.left = temp
print(tn.data['node_num'])
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)