算法与数据结构——二叉树查找

二叉查找树,左边的子节点比父节点的数值小,右边的子节点比父节点的数值大
代码大体如下,有错误
node_list = [
    {'key': '60', 'left': '12', 'right': '90', 'is_root': True},
    {'key': '12', 'left': '4', 'right': '41', 'is_root': False},
    {'key': '4', 'left': '1', 'right': 'None', 'is_root': False},
    {'key': '1', 'left': 'None', 'right': 'None', 'is_root': False},
    {'key': '41', 'left': '29', 'right': 'None', 'is_root': False},
    {'key': '29', 'left': '23', 'right': '37', 'is_root': False},
    {'key': '23', 'left': 'None', 'right': 'None', 'is_root': False},
    {'key': '37', 'left': 'None', 'right': 'None', 'is_root': False},
    {'key': '90', 'left': '71', 'right': '100', 'is_root': False},
    {'key': '71', 'left': 'None', 'right': '84', 'is_root': False},
    {'key': '100', 'left': 'None', 'right': 'None', 'is_root': False},
    {'key': '84', 'left': 'None', 'right': 'None', 'is_root': False}
    ]

class Node:
    def __init__(self, key, left=None, right=None):
        self.data, self.right, self.left, = key, right, left
        
class Tree:
    def __init__(self, root=None):
        self.root = root
    def init_data(self, datas):
        node_dict = {}
        for d in datas:
            node = Node(d['key'], d['left'], d['right'])
            node_dict[d['key']] = node
        for d in datas:
            node = node_dict[d['key']]
            if node.left:
                node.left = node_dict[node.left]
            if node.right:
                node.right = node_dict[node.right]
            if d['is_root']:
                self.root = node
    def search(self, value):
        if self.root is None:
            return None
        elif self.root.key > value:
            self.root.left.key > value
if __name__ = "__main__":
    tree = Tree()
    tree.init_data(node_list)
    tree.search(66)
    


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务