获取二叉树中给定键的层级2025年3月17日 | 阅读 8 分钟 二叉树中特定键的层级通常指的是二叉树根节点到包含所需键的节点之间的距离。到达所需键所需的步数非常重要且值得注意。在我们继续深入了解树的实现细节之前,让我们仔细回顾一下与二叉树相关的主要概念。 这种模式将确保我们拥有坚实的基础和对技术的理解,这些技术将帮助我们获取二叉树中给定键的层级。一旦我们熟悉了所有有趣的概念和算法,我们就可以继续学习将帮助我们理解各种算法并更有效地进行编码的示例。它们在存储和管理数据以及处理数据方面非常有价值。 我们给出一个二叉树和一个键;在此基础上,我们还需要写出二叉树的层级。提取二叉树的层级有时可能会很麻烦,因为它涉及到创建许多具有各自机制的不同函数,最后给出结果。 实施输出  代码的分步解释 - 代码首先声明必要的头文件,以帮助我们进行输入/输出操作。
- 接下来,在程序中,我们定义一个名为“Node”的结构,它包含三个成员:一个数据值以及一个指向左子节点和右子节点的指针。
- 接下来,我们创建一个名为“getlevelUtil”的函数,它是一个辅助函数,用于查找二叉树中节点的层级。
- 在此函数内部,节点首先检查基本条件,即节点是否为 NULL;如果不是,则返回 0。
- 如果当前节点的 data 与我们分配的数据值匹配,则表示已找到该节点,并返回该特定节点的当前层级。
- 如果当前节点的 data 不相同或不匹配,则函数会调用自身,并增加层级,然后返回该值。
- 如果“downlevel”值非零,则表示在左子树中找到了该节点;如果值仍为零,则表示在左子树中未找到所需的节点。
- 最后,在此步骤中,函数返回该值,该值要么是节点的层级,要么在不匹配时为 0。
- 函数“newNode”是一个新函数,它创建一个可以存储各种新值并帮助内存分配的新节点。
- 在程序的 main 函数中,构造了一个二叉树。
- 然后执行一个从计数 1 到 5 的循环。
- 调用“get level”函数来打印二叉树的层级。
示例 2)输出  代码的分步解释 - 代码首先声明必要的头文件,以帮助我们进行输入/输出操作。
- 接下来,在程序中,我们定义一个名为“typedef”的结构,它包含以下三个成员:一个数据值以及一个指向左子节点和右子节点的指针。
- 接下来,我们创建一个名为“getlevelUtil”的函数,它是一个辅助函数,用于查找二叉树中节点的层级。
- 在此函数内部,节点首先检查基本条件,即节点是否为 NULL;如果不是,则返回 0。
- 如果当前节点的 data 与我们分配的数据值匹配,则表示已找到该节点,并返回该特定节点的当前层级。
- 如果当前节点的 data 不相同或不匹配,则函数只是调用自身,并增加层级,然后返回该值。
- 如果“downlevel”值非零,则表示在左子树中找到了该节点;如果值仍为零,则表示在左子树中未找到所需的节点。
- 最后,在此步骤中,函数返回该值,该值要么是节点的层级,要么在不匹配时为 0。
- 函数“newNode”是一个新函数,它创建一个可以存储各种新值并帮助内存分配的新节点。
- 在程序的 main 函数中,构造了一个二叉树。
- 然后执行一个从计数 1 到 5 的循环。
- 调用“get level”函数来打印二叉树的层级。
示例 3)输出  代码的分步解释 - 代码以一个名为“Node”的类和一个名为“Binary tree”的类开始,其中包含程序的根和主要逻辑。
- 接下来,在程序中,我们定义一个名为“Node”的结构,它包含三个成员:一个数据值以及一个指向左子节点和右子节点的指针。
- 接下来,我们创建一个名为“getlevelUtil”的函数,它是一个辅助函数,用于查找二叉树中节点的层级。
- 在此函数内部,节点首先检查基本条件,即节点是否为 NULL;如果不是,则返回 0。
- 如果当前节点的 data 与我们分配的数据值匹配,则表示已找到该节点,并返回该特定节点的当前层级。
- 如果当前节点的 data 不相同或不匹配,则函数只是调用自身,并增加层级,然后返回该值。
- 如果“downlevel”值非零,则表示在左子树中找到了该节点;如果值仍为零,则表示在左子树中未找到所需的节点。
- 最后,在此步骤中,函数返回该值,该值要么是节点的层级,要么在不匹配时为 0。
- 函数“newNode”是一个新函数,它创建一个可以存储各种新值并帮助内存分配的新节点。
- 在程序的 main 函数中,构造了一个二叉树。
- 然后执行一个从计数 1 到 5 的循环。
- 调用“get level”函数来打印二叉树的层级。
|