117.info
人生若只如初见

Python TreeNode如何实现树的二叉搜索树

要实现一个树的二叉搜索树,需要定义一个TreeNode类,并实现插入、查找、删除等操作。下面是一个示例代码实现:

class TreeNode:
    def __init__(self, key):
        self.val = key
        self.left = None
        self.right = None
    
    def insert(self, key):
        if self.val is None:
            self.val = key
        else:
            if key < self.val:
                if self.left is None:
                    self.left = TreeNode(key)
                else:
                    self.left.insert(key)
            else:
                if self.right is None:
                    self.right = TreeNode(key)
                else:
                    self.right.insert(key)
    
    def find(self, key):
        if key == self.val:
            return True
        elif key < self.val:
            if self.left is None:
                return False
            else:
                return self.left.find(key)
        else:
            if self.right is None:
                return False
            else:
                return self.right.find(key)
    
    def delete(self, key):
        if key < self.val:
            if self.left:
                self.left = self.left.delete(key)
        elif key > self.val:
            if self.right:
                self.right = self.right.delete(key)
        else:
            if self.left is None:
                return self.right
            elif self.right is None:
                return self.left
            temp = self.right
            min_val = temp.val
            while temp.left:
                temp = temp.left
                min_val = temp.val
            self.val = min_val
            self.right = self.right.delete(min_val)
        return self
    
    def inorder_traversal(self):
        result = []
        if self:
            result += self.left.inorder_traversal() if self.left else []
            result.append(self.val)
            result += self.right.inorder_traversal() if self.right else []
        return result

# 示例代码
root = TreeNode(6)
root.insert(3)
root.insert(9)
root.insert(1)
root.insert(5)
root.insert(7)
root.insert(11)

print(root.find(5))  # True
print(root.find(8))  # False

root.delete(3)

print(root.inorder_traversal())  # [1, 5, 6, 7, 9, 11]

在上面的示例代码中,我们定义了一个TreeNode类,包括插入、查找、删除和中序遍历等方法。通过这些方法,我们可以实现一个二叉搜索树,并进行相关操作。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fea41AzsABAdRBg.html

推荐文章

  • linux的python如何进行进程管理

    在Linux中,可以使用Python的内置库os和subprocess进行进程管理 使用os.system()执行外部命令: import os # 执行外部命令,例如:ls
    os.system("ls") 使用...

  • linux的python怎样进行系统调用

    在Linux中,Python可以通过os和sys库进行系统调用 使用os库: os库提供了许多与操作系统交互的函数。例如,要使用os.system()执行系统命令,可以这样做:
    i...

  • python中set怎样进行集合排序

    在Python中,可以使用sorted()函数对集合(set)进行排序。sorted()函数返回一个排序后的列表(list),而不是集合,因为集合本身是无序的。以下是一个示例:

  • python中set如何进行集合转换

    在Python中,可以使用集合(set)的内置方法进行集合转换。以下是一些常用的集合转换方法: 将列表转换为集合: my_list = [1, 2, 3, 4, 5]
    my_set = set(m...

  • Python TreeNode如何实现树的最小生成树算法

    TreeNode类通常用于表示树结构中的节点,而最小生成树算法通常使用其他数据结构来实现,例如Prim算法和Kruskal算法。
    下面是一个简单的示例代码,用于实现P...

  • Python TreeNode如何实现树的深度优先和广度优先搜索

    在Python中,可以通过递归或者栈来实现树的深度优先搜索,通过队列来实现树的广度优先搜索。
    首先,定义一个TreeNode类表示树节点:
    class TreeNode: ...

  • Python TreeNode如何实现树的递归和非递归遍历

    实现树的递归和非递归遍历可以通过Python中的TreeNode类来实现。TreeNode类表示树的节点,包括节点的值和左右子节点。以下是一个示例实现:
    class TreeNode...

  • Python TreeNode如何实现树的堆排序

    实现树的堆排序可以使用Python中的TreeNode类来表示树节点,同时使用堆排序算法来对树进行排序。以下是一个示例代码:
    class TreeNode: def __init__(self,...