温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用python实现二叉排序树

发布时间:2022-01-14 11:24:23 来源:亿速云 阅读:171 作者:小新 栏目:开发技术

小编给大家分享一下如何使用python实现二叉排序树,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

方法一(粗暴)

#二叉排序树 class BTree():     def __init__(self,data):         self.left = None         self.right = None         if type(data) == list:             self.data = data[0]             for d in data[1:]:                 self.insert(d)         else:             self.data = data     def insert(self,data):         bt = self         while True:             if data <= bt.data:                 if bt.left == None:                     bt.left = BTree(data)                     break                 else:                     bt = bt.left             else:                 if bt.right == None:                     bt.right = BTree(data)                     break                 else:                     bt = bt.right     def mid_order(self):         res = []         stack = []         node = self          while node or stack:             while node:                 stack.append(node)                  node = node.left             node = stack.pop()             res.append(node.data)             node = node.right         return res data = [5,1,2,3,6,8,9] bt = BTree(data) print(bt.mid_order())

如何使用python实现二叉排序树

方法二(递归)

class TreeNode(object):     def __init__(self,data):         self.data = data         self.left = None         self.right = None class BinaryTree(object):     def insert(self,root, node):         if root is None:             return node         if node.data < root.data:             root.left = self.insert(root.left, node)         else:             root.right = self.insert(root.right, node)         return root     def mid_order(self,root):         node = root         stack = []         res = []         while node or stack:             while node:                 stack.append(node)                 node = node.left             node = stack.pop()             res.append(node.data)             node = node.right         return res      data = [5,1,2,3,6,8,9] root = TreeNode(data[0]) tree = BinaryTree() for i in data[1:]:     tree.insert(root,TreeNode(i)) print(tree.mid_order(root))

如何使用python实现二叉排序树

看完了这篇文章,相信你对“如何使用python实现二叉排序树”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI