爪哇2博客
爪哇2博客

爪哇中的二叉树级顺序遍历

如果您想练习数据结构和算法程序,可以通过 数据结构和算法面试题.

这是Java二叉树教程的第5部分。

在这篇文章中,我们将看到有关Java中的Level Order二叉树遍历的信息。

级别顺序遍历

下面的级别顺序遍历 二叉树 将会:

我们将使用Queue进行Level Order遍历。此算法与 广度优先搜索 图。
级别顺序遍历算法的步骤:

  1. Create empty 队列 and pust root node to it.
  2. Do the following when 队列 is not empty
    • Pop a node from 队列 and print it
    • Push 剩下 child of popped node to 队列 如果 not 空值
    • Push 对 child of popped node to 队列 如果 not 空值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
//按级别顺序打印
上市 静态的 虚空 levelOrderTraversal(树节点 startNode) {
队列<树节点> 队列= 链表<树节点>();
队列.(startNode);
(!队列.是空的())
{
树节点 临时节点=队列.轮询();
系统..打印(“%d”,临时节点.数据);
如果(临时节点.剩下!= 空值)
队列.(临时节点.剩下);
如果(临时节点.!= 空值)
队列.(临时节点.);
}
}
 

例:
假设您的二叉树是:

因此,级别订单遍历将按以下方式工作:

让我们创建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
 
组织.Arpit.爪哇2blog.二叉树;
 
进口 爪哇.实用程序.队列;
进口 爪哇.实用程序.链表;
上市 BinaryTreeLevelOrder {
 
 
上市 静态的 树节点
{
整型 数据;
树节点 剩下;
树节点 ;
树节点(整型 数据)
{
这个.数据=数据;
}
}
 
//按级别顺序打印
上市 静态的 虚空 levelOrderTraversal(树节点 startNode) {
队列<树节点> 队列= 链表<树节点>();
队列.(startNode);
(!队列.是空的())
{
树节点 临时节点=队列.轮询();
系统..打印(“%d”,临时节点.数据);
如果(临时节点.剩下!= 空值)
队列.(临时节点.剩下);
如果(临时节点.!= 空值)
队列.(临时节点.);
}
}
上市 静态的 虚空 主要([] args)
{
//创建一个二叉树
树节点 根节点=createBinaryTree();
系统..打印(“二叉树的级别顺序遍历将是:”);
levelOrderTraversal(根节点);
}
 
上市 静态的 树节点 createBinaryTree()
{
 
树节点 根节点 = 树节点(40);
树节点 node20= 树节点(20);
树节点 node10= 树节点(10);
树节点 node30= 树节点(30);
树节点 node60= 树节点(60);
树节点 node50= 树节点(50);
树节点 node70= 树节点(70);
 
根节点.剩下=node20;
根节点.=node60;
 
node20.剩下=node10;
node20.=node30;
 
node60.剩下=node50;
node60.=node70;
 
返回 根节点;
}
}
 

运行上面的程序,您将获得以下输出:

二叉树的Level Order遍历为:
40 20 60 10 30 50 70

爪哇二叉树教程

请通过 爪哇面试程序 有关更多此类程序。


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 11月29日

    超过100个Java编码面试问题

    我一直在发布有关各种主题的数据结构和编码面试问题,例如数组,队列,堆栈,二叉树,LinkedList,字符串,数字,ArrayList等。因此,我合并了一系列Java编码面试问题以创建索引发布。每当我添加新的Java [时,我都会继续添加指向此帖子的链接[…]

  • 4月18日

    到达最后一个索引的最小跳转数

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何找到到达上一个索引的最小跳转数。问题给定一个正整数数组A(可能为零),每个索引表示[…]

  • 3月28日

    对0、1和2的数组进行排序

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何对0、1和2s的数组进行排序。我们已经看到了有关对数组中的0s和1s进行排序的文章。问题给定一个包含零的数组,[…]

  • 3月04

    通过跳转检查是否有可能到达给定数组的末尾

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。问题给定一个具有正整数作为元素的数组,该数组指示可以从数组中任何位置进行跳转的最大长度。检查是否可以[…]

  • 2月17日

    检查数组元素是否连续

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何检查数组元素是否连续。问题给定一个数组,我们需要检查数组是否包含连续的元素。例如:输入:array [] = {5,3,4,[…]

  • 2月04日

    O(Sqrt(height))中的K元树的LCA

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将了解如何在O(Sqrt(height))中找到K元树的最低公共祖先。我们已经看到了如何在O(n)复杂度中找到n元树的LCA。给定[…]

Comments

  1. 在解释了“关卡顺序”遍历的工作原理后,您会遇到错字“让我们创建用于PreOrder遍历的Java程序:”它不是PreOrder,无论如何,所有内容都得到了很好的解释,并且很容易看出这是一个错字。

发表评论

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

订阅我们的新闻

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


成为朋友

©2020 爪哇2博客