python实现二叉树的递归遍历

class Node(object):
def init(self,val=None,left=None,right=None):
# val为节点的值,left为左子树的根节点,right为右子树的根节点
self.val = val
self.left = left
self.right = right

class BT(object):
def init(self,item=[]):
self.item = item
#传入根节点,有几种情况,空,即属性都为None,val不为空,left都为空,度为1,度为2
def preTravel(self,root):
if root is None:
return
else:
self.item.append(root.val)
self.preTravel(root.left)
self.preTravel(root.right)
def midTravel(self,root):
if root is None:
return
else:
self.midTravel(root.left)
self.item.append(root.val)
self.midTravel(root.right)
def postTravel(self,root):
if root is None:
return
else:
self.postTravel(root.left)
self.postTravel(root.right)
self.item.append(root.val)

bt = Node(‘D’,left=Node(‘A’,left=Node(‘F’),right=Node(‘G’,right=Node(‘E’))),right=Node(‘C’,left=Node(‘K’),right=Node(‘M’,left=Node(‘S’))))

bt = Node()

前序遍历

tree1 = BT()
tree1.preTravel(bt)
print(tree1.item)

‘==中序遍历=’
tree1.midTravel(bt)
print(tree1.item)
‘-----后序遍历----’
tree1.postTravel(bt)
print(tree1.item)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值