• 二叉搜索树


    class BinarySearchTree:
        def __init__(self, value):
            self.value = value
            self.left_child = None
            self.right_child = None
        
        def insert_node(self, value):
            if value <= self.value and self.left_child:
                self.left_child.insert_node(value)
            elif value <= self.value:
                self.left_child = BinarySearchTree(value)
            elif value > self.value and self.right_child:
                self.right_child.insert_node(value)
            else:
                self.right_child = BinarySearchTree(value)
    
        def in_order(self):
            if self.left_child:
                self.left_child.in_order()
            print(self.value)
            if self.right_child:
                self.right_child.in_order()
    
        def find_node(self, value):
            if value < self.value and self.left_child:
                return self.left_child.find_node(value)
            
            if value > self.value and self.right_child:
                return self.right_child.find_node(value)
            
            return value == self.value
    
        def find_min_value(self):
            if self.left_child:
                return self.left_child.find_min_value()
            else:
                return self.value
     
    
    a_node = BinarySearchTree(5)
    a_node.insert_node(4)
    a_node.insert_node(6)
    a_node.insert_node(1)
    a_node.insert_node(7)
    a_node.insert_node(3)
    a_node.insert_node(2)
    a_node.in_order()
    print(a_node.find_node(14))
    print(a_node.find_min_value())
    
  • 相关阅读:
    CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
    解惑|你是否为容器监控操碎了心?
    4 使用smartcar进行仿真
    1 简单的ROS机器人仿真
    1 rbx1 Kinetic 安装和测试
    2020.4.13 Resources
    2. dwa_local_planner_params.yaml 参数意义
    robotics
    PCL 点云处理
    C++异常处理解析
  • 原文地址:https://www.cnblogs.com/KbMan/p/14345120.html
Copyright © 2020-2023  润新知