文档章节

写颗搜索二叉树动动脑,开启今年的旅程,新年快乐

爱吃大肉包
 爱吃大肉包
发布于 2017/02/06 16:49
字数 327
阅读 17
收藏 0

没事总喜欢写二叉树, 发现这东西把脑袋开启

 

今年任务, 加密安全字符集, 内存篇,网络篇,数据存储篇,加油

 

 

package com.he.test;

/**
 * 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层
 

© 著作权归作者所有

爱吃大肉包

爱吃大肉包

粉丝 64
博文 41
码字总数 37876
作品 0
广州
程序员
私信 提问
收到人工智能界的新年祝福是种怎样的体验?

2018到了,新年好! 跨年时刻, 你送出了怎样的新年祝福语? 曾经你是不是认为这样的祝福很特别 汉语:新年快乐 阿拉伯语:سنة جديدة سعيدة 德语:Ein Frohes Neues Jahr 俄语:...

uzv80px5v412ne
2018/01/01
0
0
【LeetCode】Symmetric Tree(对称二叉树)

这道题是LeetCode里的第101道题。是我在学数据结构——二叉树的时候碰见的题。 题目如下: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 是对称的。 1/ 2 2/ / 3 4 4 3 但是下面这...

1000sakura
2018/11/24
0
0
用二叉树的后序遍历来看oracle执行计划的执行顺序

我们先用一个小表来,来说明一下,oracle执行计划该注意哪些地方。 现在,我们用一个大表,来把执行计划列出来。 其实,前两列是颗二叉树。我们可以借助v$sql_plan视图,很容易把这颗树给画出...

长平狐
2012/09/19
116
0
[译文] 初学者应该了解的数据结构: Tree

原文链接:Tree Data Structures for Beginners 众成翻译地址:初学者应该了解的数据结构: Tree 系列文章,建议不了解树的同学慢慢阅读一下这篇文章,希望对你有所帮助~至于系列的最后一篇自...

sea_ljf
2018/08/11
0
0
2016年终总结,新的里程和新的开始

转载请注明出处:http://blog.csdn.net/guolinblog/article/details/52506273 转眼之间,一年又过去了。按照往年的习惯,我都是在12月31号那天才写年终总结的,但今年的日子比较特殊,因为明...

sinyu890807
2016/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
5
0
数组和链表

数组 链表 技巧一:掌握链表,想轻松写出正确的链表代码,需要理解指针获引用的含义: 对指针的理解,记住下面的这句话就可以了: 将某个变量赋值给指针,实际上就是将这个变量的地址赋值给指...

code-ortaerc
今天
4
0
栈-链式(c/c++实现)

上次说“栈是在线性表演变而来的,线性表很自由,想往哪里插数据就往哪里插数据,想删哪数据就删哪数据...。但给线性表一些限制呢,就没那么自由了,把线性表的三边封起来就变成了栈,栈只能...

白客C
今天
43
0
Mybatis Plus service

/** * @author beth * @data 2019-10-20 23:34 */@RunWith(SpringRunner.class)@SpringBootTestpublic class ServiceTest { @Autowired private IUserInfoService iUserInfoS......

一个yuanbeth
今天
5
0
php7-internal 7 zval的操作

## 7.7 zval的操作 扩展中经常会用到各种类型的zval,PHP提供了很多宏用于不同类型zval的操作,尽管我们也可以自己操作zval,但这并不是一个好习惯,因为zval有很多其它用途的标识,如果自己...

冻结not
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部