当前位置: 首页 > 编程笔记 >

C#二叉搜索树插入算法实例分析

朱梓
2023-03-14
本文向大家介绍C#二叉搜索树插入算法实例分析,包括了C#二叉搜索树插入算法实例分析的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了C#二叉搜索树插入算法。分享给大家供大家参考。具体实现方法如下:

public class BinaryTreeNode
{
 public BinaryTreeNode Left { get; set; }
 public BinaryTreeNode Right { get; set; }
 public int Data { get; set; }
 public BinaryTreeNode(int data)
 {
  this.Data = data;
 }
}
public void InsertIntoBST(BinaryTreeNode root, int data)
{
  BinaryTreeNode _newNode = new BinaryTreeNode(data);
  BinaryTreeNode _current = root;
  BinaryTreeNode _previous = _current;
  while (_current != null)
  {
   if (data < _current.Data)
   {
    _previous = _current;
    _current = _current.Left;
   }
   else if (data > _current.Data)
   {
    _previous = _current;
    _current = _current.Right;
   }
  }
  if (data < _previous.Data)
   _previous.Left = _newNode;
  else
   _previous.Right = _newNode;
}

希望本文所述对大家的C#程序设计有所帮助。

 类似资料:
  • 二叉搜索树(BST)和二叉树(BT)中的插入有什么区别?我知道,在BST中,您将新节点的值与根进行比较,如果较小,则添加到其左侧,如果较大,则将其添加到根的右侧。BT的程序是否相同?如果没有,插入和移除的步骤是什么?

  • 我搜索了一下,但没有找到这个问题的答案... 我构建了一个非二叉树,因此每个节点可以有任意数量的子节点(我认为称为n元树) 为了有助于搜索,我在构建树的时候给了每个节点一个编号,这样每个节点的子节点会更大,它右边的所有节点也会更大。 像这样的东西: 这样我就有更多的时间进行搜索 当我想插入节点时,问题就来了。如果我想在除了结尾以外的任何地方插入节点,这个模型就不起作用了。 我想了几种方法可以做到这

  • 我最近完成了一个项目的二进制搜索树,我正在工作。很顺利,我学到了很多。然而,现在我需要实现一个常规的二叉树...出于某种原因,这让我难倒了。 我正在寻找一种方法来做我的InsertNode功能... 通常在BST中,您只需检查数据 有谁能帮我实现一个函数,只需将一个新节点从左到右不按特定顺序添加到二叉树中? 以下是我的BST插页:

  • 本文向大家介绍算法题,trim二叉搜索树相关面试题,主要包含被问及算法题,trim二叉搜索树时的应答技巧和注意事项,需要的朋友参考一下 参考回答: C++版本  

  • 我正在研究数据结构,我遇到了一个难题。目标是根据数组元素的值将数组元素插入到二叉搜索树中,即(主树的根节点为数组[0],左子树的根_node小于父节点,右子树的根节点大于父节点)。这将递归进行,直到所有数组元素都插入BST。 我实现了两个类: 这表示具有属性的节点(数据,左,右): 是BST的私有方法,它执行将节点插入树的实际工作。我将其与分开,因为需要使用RSpec评估的预期解决方案。 然后,我