爪哇2博客
爪哇2博客

将排序的数组转换为平衡的二进制搜索树

在这篇文章中,我们将看到如何将排序数组转换为平衡数组 二叉搜索树.

算法:

您可能知道二叉搜索树的有序遍历会导致排序数组。我们将使用此属性将排序后的数组转换为平衡的二进制搜索树,因此数组或子数组的中间元素将始终是该数组或子数组的根。

  • 初始化两个变量,以0和arr.length -1开头和结尾。
  • 使用开始和结束查找数组的中间元素。
  • 使中间元素成为树的根元素。
  • 递归遍历左子树,找到中间并使其成为左子树的根节点
  • 递归遍历右子树,找到中间的树并使其成为右子树的根节点。

爪哇代码将已排序的数组转换为平衡的二进制搜索树:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
组织.Arpit.爪哇2blog.二分搜索树;
 
上市 BinarySearchTreeSortedArrayMain {
上市 静态的 树节点 {
整型 数据;
树节点 剩下;
树节点 ;
 
树节点(整型 数据) {
这个.数据 = 数据;
}
}
 
上市 静态的 虚空 预购(树节点 ) {
如果 ( == 空值)
返回;
系统..打印(.数据 + );
预购(.剩下);
预购(.);
}
 
上市 静态的 虚空 主要([] args) {
 
//创建一个二叉搜索树
整型 rr[]={10,20,30,40,50,60,70,80,90};
树节点 根节点 = createBinarySearchTreeFromSortedArray(rr,0,rr.长度-1);
 
系统..打印(“创建的二叉搜索树的遍历遍历:”);
预购(根节点);
 
}
 
上市 静态的 树节点 createBinarySearchTreeFromSortedArray(整型[] rr,整型 开始,整型 结束) {
如果 (开始 > 结束) {
返回 空值;
}
 
/ *获取中间元素并将其设为根* /
整型 = (开始 + 结束) / 2;
树节点 节点 = 树节点(rr[]);
 
/ *递归构造左子树并使其
根的左子* /
节点.剩下 = createBinarySearchTreeFromSortedArray(rr, 开始, - 1);
 
/ *递归构造右子树并让根的右子* /
节点. = createBinarySearchTreeFromSortedArray(rr, + 1, 结束);
 
返回 节点;
}
}
 

当您运行上述程序时,将获得以下输出:

1
2
3
4
 
预购 遍历 被创造 二元 搜索 :
50 20 10 30 40 70 60 80 90
 


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇2博客