Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class TreeImplementationBFS {
- public static void main(String[] args) {
- Node<Integer> root = createTree();
- printTree(root);
- }
- private static Node<Integer> createTree() {
- Node<Integer> root = new Node<>(1);
- Node<Integer> node1 = root.addChild(new Node<Integer>(2));
- Node<Integer> node2 = root.addChild(new Node<Integer>(3));
- Node<Integer> node3 = root.addChild(new Node<Integer>(4));
- Node<Integer> node11 = node1.addChild(new Node<Integer>(5));
- Node<Integer> node12 = node1.addChild(new Node<Integer>(6));
- Node<Integer> node31 = node3.addChild(new Node<Integer>(7));
- Node<Integer> node32 = node3.addChild(new Node<Integer>(8));
- Node<Integer> node111 = node11.addChild(new Node<Integer>(9));
- Node<Integer> node112 = node11.addChild(new Node<Integer>(10));
- Node<Integer> node311 = node31.addChild(new Node<Integer>(11));
- Node<Integer> node312 = node31.addChild(new Node<Integer>(12));
- return root;
- }
- private static <T> void printTree(Node<T> node) {
- Queue<Node<T>> q = new LinkedList<Node<T>>();
- q.add(node);
- while (!q.isEmpty()) {
- Node<T> n = q.remove();
- System.out.print(" " + n.getData());
- if (n.getChildren().size() !=0) {
- q.addAll(n.getChildren());
- }
- }
- }
- }
- class Node<T> {
- private T data = null;
- private List<Node<T>> children = new ArrayList<>();
- private Node<T> parent = null;
- public Node(T data) {
- this.data = data;
- }
- public Node<T> addChild(Node<T> child) {
- child.setParent(this);
- this.children.add(child);
- return child;
- }
- public void addChildren(List<Node<T>> children) {
- children.forEach(each -> each.setParent(this));
- this.children.addAll(children);
- }
- public List<Node<T>> getChildren() {
- return children;
- }
- public T getData() {
- return data;
- }
- public void setData(T data) {
- this.data = data;
- }
- private void setParent(Node<T> parent) {
- this.parent = parent;
- }
- public Node<T> getParent() {
- return parent;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement