您的位置:首页 > 其它

今年上班第一天,用一颗查找二叉树开启脑洞

2017-02-06 17:11 363 查看
package com.he.test;

import java.util.HashMap;
import java.util.Map;

/**
* happy new year
*
* @author hejb
*
*/
public class Start {
class Node {
public Node(long value, int level) {
this.value = value;
this.level = level;
}

public Long value;
public int level;
public Node leftNode;
public Node rigtNode;
}

public static long max = 7;

public static Node root;

public Start(long value) {
root = new Node(value, 0);

}

public void insetTree(Node node, long value, int level) {
level++;
if (value < node.value) {
if (node.leftNode == null) {
Node nodeItem = new Node(value, level);

node.leftNode = nodeItem;
} else {
insetTree(node.leftNode, value, level);
}
} else {
if (node.rigtNode == null) {
Node nodeItem = new Node(value, level);
node.rigtNode = nodeItem;
} else {
insetTree(node.rigtNode, value, level);
}
}
}

// 前序遍历
public void printNode(Node node) {
System.out.println("节点值:" + node.value + ",属于树的第--->" + node.level + "层");
if (node.leftNode != null) {
printNode(node.leftNode);
}
if (node.rigtNode != null) {
printNode(node.rigtNode);
}
}

public void printTree() {
printNode(root);
}

public void insert(int value) {
insetTree(root, value, 0);
}

public static void main(String[] args) {
Start s = new Start(5);
s.insert(4);
s.insert(6);
s.insert(3);
s.insert(10);
s.insert(8);
s.insert(5);
s.printTree();
}
}


今年上班第一天,用一颗查找二叉树开启脑洞

应该是这颗

       5

    4      6

  3      5    8

1

输出如下

节点值:5,属于树的第--->0层

节点值:4,属于树的第--->1层

节点值:3,属于树的第--->2层

节点值:6,属于树的第--->1层

节点值:5,属于树的第--->2层

节点值:10,属于树的第--->2层

节点值:8,属于树的第--->3层
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: