问:在二叉树中搜索节点的程序。

2025年3月17日 | 阅读 7 分钟

树是一种非线性数据结构,以层次化的方式存储数据。树是由称为节点的元素集合组成。节点通过连接并包含数据。树的第一个节点称为。每个节点可以有或没有子节点。没有子节点的节点称为叶子节点

二叉树是另一种类型的树数据结构,其中每个节点最多可以有两个子节点。也就是说,二叉树中的每个节点将包含数据、左子节点和右子节点。

Program to search a node in a Binary Tree

上图表示一个二叉树,其中 1 是树的根节点。节点 2 以 4 作为其左子节点,节点 3 以 5 作为其左子节点,以 6 作为其右子节点。节点 4、5 和 6 是叶子节点,因为它们没有子节点。

说明

在这个程序中,我们将搜索二叉树中一个特定值。如果存在,则打印消息“元素存在于二叉树中”,否则打印消息“元素不存在于二叉树中”。简而言之,我们将首先比较根节点的数据与要搜索节点的数据。如果找到匹配项,则将标志设置为 true。否则,在左子树中搜索节点,然后在右子树中搜索。

算法

  1. 定义 Node 类,它有三个属性:data、leftright。其中,left 表示节点的左子节点,right 表示节点的右子节点。
  2. 创建节点时,将数据传递给节点的 data 属性,并将 left 和 right 都设置为 null
  3. 定义另一个类,该类有两个属性 root 和 flag。
    1. Root 表示树的根节点,并将其初始化为 null。
    2. Flag 将用于检查给定节点是否在树中。最初,它将设置为 false。
  4. searchNode() 将在二叉树中搜索特定节点
    1. 它检查根是否为空,这意味着树是空的。
    2. 如果树不为空,它将比较 temp 的数据与值。如果它们相等,它将标志设置为true并返回。
    3. 通过递归调用 searchNode() 来遍历左子树,并检查 value 是否存在于左子树中。
    4. 通过递归调用 searchNode() 来遍历右子树,并检查 value 是否存在于右子树中。

解决方案

Python

输出

Element is present in the binary tree

C

输出

Element is present in the binary tree

JAVA

输出

Element is present in the binary tree

C#

输出

Element is present in the binary tree

PHP

输出

Element is present in the binary tree
 
下一个主题程序列表