爪哇2博客
爪哇2博客

在Java中的二进制搜索树中查找最小和最大元素

在这篇文章中,我们将看到如何在二进制搜索树中找到最小和最大元素。

寻找最小元素:

最小元素不过是二叉搜索树中最左边的节点,因此向左遍历直到获得最左边的元素。

1
2
3
4
5
6
7
8
9
10
11
12
 
//获取二叉搜索树中的最小元素
    上市 静态的 树节点 minimumElement(树节点 )
    {
        如果(.剩下==空值)
            返回 ;
        其他
        {
            返回 minimumElement(.剩下);
        }
    }
 

寻找最大元素:

最大元素不过是二叉搜索树中最右边的节点,因此向右遍历直到获得最右边的元素。

1
2
3
4
5
6
7
8
9
10
11
12
 
//获取二叉搜索树中的最大元素
    上市 静态的 树节点 maximumElement(树节点 )
    {
        如果(.==空值)
            返回 ;
        其他
        {
            返回 maximumElement(.);
        }
    }
 

完整的Java程序:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
 
组织.Arpit.爪哇2blog.二分搜索树;
 
上市 BinarySearchTreeMinMaxMain {
    上市 静态的 树节点
    {
        整型 数据;
        树节点 剩下;
        树节点 ;
        树节点(整型 数据)
        {
            这个.数据=数据;
        }
    }
 
    上市 静态的 布尔值 搜索(树节点 ,树节点 nodeToBeSearched)
    {
        如果(==空值)
            返回 ;
        如果(.数据== nodeToBeSearched.数据)
        {
            返回 真正;
        }
        布尔值 结果=;
        如果(.数据 > nodeToBeSearched.数据)
            结果=搜索(.剩下,nodeToBeSearched);
        其他 如果(.数据 < nodeToBeSearched.数据)
            结果= 搜索(.,nodeToBeSearched);
        返回 结果;
    }
 
    //获取二叉搜索树中的最小元素
    上市 静态的 树节点 minimumElement(树节点 )
    {
        如果(.剩下==空值)
            返回 ;
        其他
        {
            返回 minimumElement(.剩下);
        }
    }
 
    //获取二叉搜索树中的最大元素
    上市 静态的 树节点 maximumElement(树节点 )
    {
        如果(.==空值)
            返回 ;
        其他
        {
            返回 maximumElement(.);
        }
    }
    上市 静态的 树节点 (树节点 ,树节点 nodeToBeInserted)
    {
        如果(==空值)
        {
            =nodeToBeInserted;
            返回 ;
        }
 
        如果(.数据 > nodeToBeInserted.数据)
        {
            如果(.剩下==空值)
                .剩下=nodeToBeInserted;
            其他
                (.剩下,nodeToBeInserted);
        }
        其他 如果(.数据 < nodeToBeInserted.数据)
            如果(.==空值)
                .=nodeToBeInserted;
            其他
                (.,nodeToBeInserted);
        返回 ;
    }
 
    上市 静态的 虚空 为了(树节点 )
    {
        如果(==空值)
            返回;
        为了(.剩下);
        系统..打印(.数据+);
        为了(.);
    }
    上市 静态的 虚空 主要([] args)
    {
 
        //创建一个二叉搜索树
        树节点 根节点=createBinarySearchTree();
        系统..打印(“二进制搜索树中的最小元素:”+minimumElement(根节点).数据);
        系统..打印(“二进制搜索树中的最大元素:”+maximumElement(根节点).数据);
 
    }  
 
    上市 静态的 树节点 createBinarySearchTree()
    {
        树节点 根节点 = 树节点(40);
        树节点 node20= 树节点(20);
        树节点 node10= 树节点(10);
        树节点 node30= 树节点(30);
        树节点 node60= 树节点(60);
        树节点 node50= 树节点(50);
        树节点 node70= 树节点(70);
        树节点 node5= 树节点(5);
        树节点 node55= 树节点(55);
 
        (空值,根节点);
        (根节点,node20);
        (根节点,node10);
        (根节点,node30);
        (根节点,node60);
        (根节点,node50);
        (根节点,node70);
        (根节点,node5);
        (根节点,node55);
 
        返回 根节点;
    }
 
}
 

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

1
2
3
4
 
最低要求 元件 二元 搜索 : 5
最大 元件 二元 搜索 : 70
 


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

发表评论

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

订阅我们的新闻

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


成为朋友

©2020 爪哇2博客