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

C#创建二叉搜索树的方法

韦飞尘
2023-03-14
本文向大家介绍C#创建二叉搜索树的方法,包括了C#创建二叉搜索树的方法的使用技巧和注意事项,需要的朋友参考一下

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

public static BinaryTreeNode BuildBinarySearchTree(int[] sortedArray)
{
 if (sortedArray.Length == 0)
  return null;
 int _mid = sortedArray.Length / 2;
 BinaryTreeNode _root = new BinaryTreeNode(sortedArray[_mid]);
 int[] _left = GetSubArray(sortedArray,0,_mid-1);
 int[] _right = GetSubArray(sortedArray,_mid+1,sortedArray.Length-1);
 _root.Left = BuildBinarySearchTree(_left);
 _root.Right = BuildBinarySearchTree(_right);
 return _root;
}
public int[] GetSubArray(int[] array, int start, int end)
{
 List<int> _result = new List<int>();
 for (int i = start; i <= end; i++)
 {
  _result.Add(array[i]);
 }
 return _result.ToArray();
}

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

 类似资料:
  • 好的,所以我目前正在尝试创建一个二叉搜索树,每个节点都包含对某个对象的引用,以及对其左侧子项的引用和对右子项的引用(总共3个变量)。左子项必须始终小于其父项,而右子项必须始终大于其父项。我必须创建两个方法:1种方法( contains()) 来检查元素是否在树中,以及一个add()方法将元素添加到树中的适当位置。 以下是BinarySearchTree类: 下面是TreeNode类(包含在Bina

  • 我正在学习C++语言,我正在尝试编写BST,但是出了问题。我尝试添加元素到空树,根是NULL,但添加元素后,根仍然是NULL,尽管添加成功了(我在调试模式下看到,节点设置为tmp)。我不知道为什么会这样。

  • 我正在尝试为我一直在研究的BST结构实现一个移除方法。以下是包含查找、插入和删除方法的代码: 我被告知可以使用insert方法来帮助我使用remove方法,但我只是不知道如何获取最小/最大的元素,然后用该值替换我正在删除的元素,然后递归地删除我获取替换值的节点,同时仍然保持O(logn)的复杂性。有人有什么想法或明显的漏洞我错过了,或任何其他有帮助的,因为我撞我的头在这个问题上? 编辑:我用答案的

  • 我正在制作一个按字符串键排序的二叉搜索树。每个节点由一个与一个键相关联的无序信息链表组成。这棵树是按字母顺序排列的。 我已经完成了大部分的程序,但有麻烦的删除方法。 谢谢你。

  • 我不知道这些节点是否被插入,但输出结果是正确的。我只想插入节点到左边的孩子,我可以消除那代码吗?root.right=insertLevelOrder(arr,root.right,2*i+2); 还有为什么这个循环没有“i++”的符号,int i是如何自动增加的?

  • 我很难按我教授想要的格式打印出一个二叉搜索树。 他的格式是这样的: 我的代码: