Python实现与遍历二叉树

构建和遍历二叉树

class Node(object):
    def __init__(self, data):
        self.val = data
        self.leftChild = None
        self.rightChild = None

def creatTree(nodeList):
    if nodeList[0] == None:
        return None
    head = Node(nodeList[0])
    Nodes = [head]
    j = 1
    for node in Nodes:
        if node != None:
            node.leftChild = (Node(nodeList[j]) if nodeList[j] != None else None)
            Nodes.append(node.leftChild)
            j += 1
            if j == len(nodeList):
                return head
            node.rightChild = (Node(nodeList[j])if nodeList[j] != None else None)
            j += 1
            Nodes.append(node.rightChild)
            if j == len(nodeList):
                return head

def PreorderTraverse(head):
    if head:
        print(head.val)
        PreorderTraverse(head.leftChild)
        PreorderTraverse(head.rightChild)

def InorderTrverse(head):
    if head:
        InorderTrverse(head.leftChild)
        print(head.val)
        InorderTrverse(head.rightChild)

def PostorderTraverse(head):
    if head:
        PostorderTraverse(head.leftChild)
        PostorderTraverse(head.rightChild)
        print(head.val)

def LevelTraverse(head):
	if head:
		queue = []
		node = head
		queue.append(node)
		while queue:
			node = queue.pop(0)
			print(node.val)
			if node.leftChild != None:
				queue.append(node.leftChild)
			if node.rightChild != None:
				queue.append(node.rightChild)

if __name__ == '__main__':
	n = [1,2,3,4,5,6,7]
	print('前序遍历:')
	PreorderTraverse(creatTree(n))
	print('中序遍历:')
	InorderTrverse(creatTree(n))
	print('后序遍历:')
	PostorderTraverse(creatTree(n))
	print('层次遍历:')
	LevelTraverse(creatTree(n))

输出结果

前序遍历:
1
2
4
5
3
6
7
中序遍历:
4
2
5
1
6
3
7
后序遍历:
4
5
2
6
7
3
1
层次遍历:
1
2
3
4
5
6
7
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全评估测试题大模型安全评估测试题关键词库生成内容测试题库应拒答测试题库非拒答测试题大模型安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值