多叉树 java(多叉树广度优先遍历:代码示例)

xl1407

温馨提示:这篇文章已超过241天没有更新,请注意相关的内容是否还可用!

多叉树 java(多叉树广度优先遍历:代码示例)

多叉树是一种特殊的树结构,每个节点可以有多个子节点。在多叉树中,广度优先遍历是一种遍历方式,它按层次遍历树的节点,先访问根节点,然后依次访问根节点的所有子节点,再访问子节点的子节点,以此类推。

下面是一个多叉树的Java代码示例,展示了如何使用广度优先遍历方法遍历多叉树:

import java.util.LinkedList;

import java.util.Queue;

class TreeNode {

int val;

List<TreeNode> children;

public TreeNode(int val) {

this.val = val;

this.children = new ArrayList<>();

}

}

public class MultiwayTreeBFS {

public void breadthFirstSearch(TreeNode root) {

if (root == null) {

return;

}

Queue<TreeNode> queue = new LinkedList<>();

queue.offer(root);

while (!queue.isEmpty()) {

TreeNode node = queue.poll();

System.out.print(node.val + " ");

for (TreeNode child : node.children) {

queue.offer(child);

}

}

}

public static void main(String[] args) {

// 构建一个多叉树

TreeNode root = new TreeNode(1);

TreeNode node2 = new TreeNode(2);

TreeNode node3 = new TreeNode(3);

TreeNode node4 = new TreeNode(4);

TreeNode node5 = new TreeNode(5);

TreeNode node6 = new TreeNode(6);

root.children.add(node2);

root.children.add(node3);

node2.children.add(node4);

node2.children.add(node5);

node3.children.add(node6);

// 广度优先遍历多叉树

MultiwayTreeBFS solution = new MultiwayTreeBFS();

solution.breadthFirstSearch(root);

}

}

在上面的示例代码中,我们首先定义了一个`TreeNode`类,表示多叉树的节点。每个节点包含一个整数值`val`和一个子节点列表`children`。然后,我们定义了`MultiwayTreeBFS`类,其中包含一个`breadthFirstSearch`方法用于实现多叉树的广度优先遍历。

在`breadthFirstSearch`方法中,我们使用一个队列来辅助遍历。我们首先将根节点入队,然后开始循环,直到队列为空。在循环中,我们首先取出队列的头部节点,并输出该节点的值。然后,我们遍历该节点的所有子节点,并将它们依次入队。这样,我们就可以按层次遍历多叉树的所有节点。

在示例代码的`main`方法中,我们构建了一个多叉树,并调用`breadthFirstSearch`方法进行广度优先遍历。最终,输出的结果为`1 2 3 4 5 6`,表示按层次遍历多叉树的结果。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码