用python建立任意二叉树

#建立一个二叉树

#声明一个二叉树节点类
#节点中包括:节点值,节点左子树根节点,节点右子树根节点,节点父节点
class TreeNode():
    def __init__(self,value=None,leftNode=None,rightNode=None,parentNode=None):
        self.val = value
        self.leftnode = leftNode
        self.rightnode = rightNode
        self.parentnode = parentNode
        
    def SetLeftNode(self,leftNode):
        self.leftnode = leftNode
        
    def SetRightNode(self,rightNode):
        self.rightnode = rightNode

    def SetParentNode(self,parentNode):
        self.parentnode = parentNode
        
    def GetLeftNode(self):
        return self.leftnode
    
    def GetRightNode(self):
        return self.rightnode
    
    def GetParentNode(self):
        return self.parentnode
    
    def GetValue(self):
        return self.val

#定义根节点以及各个节点
root = TreeNode(1)
n2 = TreeNode(2)
n3 = TreeNode(3)
n4 = TreeNode(4)
n5 = TreeNode(5)
n6 = TreeNode(6)
n7 = TreeNode(7)

#设置根节点的左右节点
root.SetLeftNode(n2)
root.SetRightNode(n3)

#设置n2节点左右子树节点和其父节点
n2.SetLeftNode(n4)
n2.SetRightNode(n5)
n2.SetParentNode(root)

#设置n3节点左右子树节点和其父节点
n3.SetLeftNode(n6)
n3.SetRightNode(n7)
n3.SetParentNode(root)

#设置n4,n5节点的父节点
n4.SetParentNode(n2)
n5.SetParentNode(n2)

#设置n6,n7节点的父节点
n6.SetParentNode(n3)
n7.SetParentNode(n3)

#输出n2节点值,n2节点左孩子值,n2节点右孩子值,n2节点父节点值
print(str('n2 node value:')+str(n2.GetValue()))
print(str('n2 left child value:')+str(n2.GetLeftNode().GetValue()))
print(str('n2 right child value:')+str(n2.GetRightNode().GetValue()))
print(str('n2 parent node value:')+str(n2.GetParentNode().GetValue()))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 二叉树搜索是在二叉搜索中查找特定值的过程。二叉搜索是一种特殊的二叉树,其中每个节点的值都大于其左子中的所有节点的值,而小于其右子中的所有节点的值。 下面是用 Python 实现二叉树搜索的示例代码: ``` class Node: def __init__(self, value): self.left = None self.right = None self.value = value def search(root, value): if root is None or root.value == value: return root if value < root.value: return search(root.left, value) else: return search(root.right, value) # 建立二叉搜索 root = Node(8) root.left = Node(3) root.right = Node(10) root.left.left = Node(1) root.left.right = Node(6) root.right.right = Node(14) # 查找值为 6 的节点 result = search(root, 6) if result: print("Found node with value 6") else: print("Node with value 6 not found") ``` 在这段代码中,我们首先建立了一棵二叉搜索,然后使用递归函数 `search` 来查找值为 6 的节点。如果找到了该节点,就会打印 "Found node with value 6";如果没有找到,就会打印 "Node with value 6 not found"。 ### 回答2: 二叉树搜索是指在二叉树中查找特定值的过程。下面是用Python编写的二叉树搜索代码示例: ```python # 定义二叉树节点类 class Node: def __init__(self, value): self.value = value self.left = None self.right = None # 二叉树搜索函数 def binary_search(root, target): if not root or root.value == target: return root if root.value < target: return binary_search(root.right, target) return binary_search(root.left, target) # 创建二叉树 def build_binary_tree(): root = Node(5) root.left = Node(3) root.right = Node(7) root.left.left = Node(2) root.left.right = Node(4) root.right.left = Node(6) root.right.right = Node(8) return root # 测试二叉树搜索 if __name__ == "__main__": root = build_binary_tree() target = 4 result = binary_search(root, target) if result: print("找到了目标值", result.value) else: print("未找到目标值") ``` 以上代码中,首先定义一个节点类,包含节点的值以及左右子节点。然后定义了二叉树搜索函数`binary_search`,该函数会在给定的二叉树中查找目标值。如果找到目标值,则返回匹配的节点;若未找到,则返回`None`。最后通过调用`build_binary_tree`函数创建一个二叉树,并测试二叉树搜索函数。如果找到目标值,则打印"找到了目标值"以及对应的节点值;若未找到目标值,则打印"未找到目标值"。 ### 回答3: 二叉树搜索(binary search tree)是一种常用的数据结构,它具有以下特点:对于任意节点,它的左子中的所有节点的值都小于该节点的值,而右子中的所有节点的值都大于该节点的值。搜索操作即在二叉树中查找指定的值。 下面是用python编写的二叉树搜索的代码示例: ```python # 定义二叉树节点类 class Node: def __init__(self, value): self.value = value self.left = None self.right = None # 插入节点的函数 def insert(root, value): if root is None: root = Node(value) else: if value < root.value: if root.left is None: root.left = Node(value) else: insert(root.left, value) else: if root.right is None: root.right = Node(value) else: insert(root.right, value) # 搜索函数 def search(root, value): if root is None or root.value == value: return root if value < root.value: return search(root.left, value) else: return search(root.right, value) # 创建二叉树 root = Node(5) insert(root, 3) insert(root, 7) insert(root, 2) insert(root, 4) insert(root, 6) insert(root, 8) # 在二叉树中搜索指定值 value_to_search = 4 result = search(root, value_to_search) if result is None: print(f"在二叉树中未找到值为{value_to_search}的节点") else: print(f"在二叉树中找到了值为{value_to_search}的节点") ``` 以上代码中包含了二叉树的插入和搜索函数。首先创建了一个具有七个节点的二叉树,并在其中搜索值为4的节点。最后根据搜索结果输出相应的信息。 希望以上代码能够对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值