欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

Python_二叉树定义与遍历

发布时间:2025/3/21 python 20 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Python_二叉树定义与遍历 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

二叉树定义

class BinTNode(object):def __init__(self,dat,left = None,right = None):self.data = datself.left = leftself.right = rightdef count_BinTNodes(t):if t is None:return 0else:return 1 + count_BinTNodes(t.left) + count_BinTNodes(t.right)def sum_BinTNode(t):if t is none:return 0else:return t.dat + sum_BinTNode(t.left) + sum_BinTNode(t.right) t = BinTNode(1,BinTNode(2),BinTNode(3)) count = count_BinTNodes(t) print(count)

二叉树遍历

class TreeNode(object):def __init__(self,data = 0,left = 0,right = 0):self.data = dataself.left = leftself.right = rightclass BTree(object):"""docstring for BTree"""def __init__(self, root=0):self.root = rootdef is_empty(self):if self.root is 0:return Trueelse:return Falsedef preOrder(self,treenode):if treenode is 0:returnprint(treenode.data,end = ',')self.preOrder(treenode.left)self.preOrder(treenode.right)def inOrder(self,trennode):if trennode is 0:returnself.inOrder(trennode.left)print(trennode.data,end = ',')self.inOrder(trennode.right)def postOrder(self,treenode):if treenode is 0:returnself.postOrder(treenode.left)self.postOrder(treenode.right)print(treenode.data,end = ',')n1 = TreeNode(data =1) n2 = TreeNode(2,left = n1,right = 0) n3 = TreeNode(3) n4 = TreeNode(4)n5 = TreeNode(5,n3,n4) n6 = TreeNode(6,n2,n5) n7 = TreeNode(7,n6,0) n8 = TreeNode(data = 8) root = TreeNode('root',n7,n8)bt = BTree(root) print("先序遍历:") print(bt.preOrder(bt.root)) print("中序遍历:") print(bt.inOrder(bt.root)) print("后序遍历:") print(bt.postOrder(bt.root)) 《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的Python_二叉树定义与遍历的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。