排行榜 统计
  • 文章总数:649 篇
  • 评论总数:10704 条
  • 分类总数:4 个
  • 最后更新:4月4日
none

二叉树的概念

本文阅读 3 分钟
首页 正文
本文最后更新于2023年01月05日,已超过850天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

您阅读这篇文章共耗时:

  本文撇开一些非常苦涩、难以理解的概念来讲讲,仅入门观看(或复习)....

  首先,我们来讲讲什么是树:

  但是在编程的世界中,我们一般把树“倒”过来看,这样容易我们分析:

  image.png

  一般的树是有很多很多个分支的,分支下又有很多很多个分支,如果在程序中研究这个会非常麻烦。因为本来树就是非线性的,而我们计算机的内存是线性存储的,太过复杂的话我们无法设计出来的。

  因此,我们先来研究简单又经常用的--->二叉树

  1 树的一些概念

  我就拿上面的图来进行画来讲解了:

  image.png

  二叉树的意思就是说:每个节点不能多于有两个儿子,上面的图就是一颗二叉树。

  2 静态创建二叉树

  上面说了,树是由若干个节点组成,节点连接起来就成了树,而节点由一个数据、两个指针组成

  因此,创建树实际上就是创建节点,然后连接节点

  首先,使用类定义节点:

  

public class TreeNode {
    // 左节点(儿子)
    private TreeNode lefTreeNode;
    
    // 右节点(儿子)
    private TreeNode rightNode;
    
    // 数据
    private int value;
    
}

  下面我们就拿这个二叉树为例来构建吧:

  image.png

  为了方便构建,我就给了它一个带参数的构造方法和set、get方法了:

  

    public TreeNode(int value) {
        this.value = value;
    }

  那么我们现在就创建了5个节点:

  

    public static void main(String[] args) {
        //根节点-->10
        TreeNode treeNode1 = new TreeNode(10);
        //左孩子-->9
        TreeNode treeNode2 = new TreeNode(9);
        //右孩子-->20
        TreeNode treeNode3 = new TreeNode(20);
        
        //20的左孩子-->15
        TreeNode treeNode4 = new TreeNode(15);
        
        //20的右孩子-->35
        TreeNode treeNode5 = new TreeNode(35)        
      
    }

  它们目前的状态是这样子的:

  image.png

  于是下面我们去把它连起来:

  

    //根节点的左右孩子
    treeNode1.setLefTreeNode(treeNode2);
    treeNode1.setRightNode(treeNode3);
    //20节点的左右孩子
    treeNode3.setLefTreeNode(treeNode4);
    treeNode3.setRightNode(treeNode5);

  连接完之后,那么我们的树就创建完成了。

  image.png

  关于二叉树遍历请参考:PHP实现二叉树的遍历

本文来自投稿,不代表本站立场,如若转载,请注明出处:http://xuan.ddwoo.top/index.php/archives/771/
-- 展开阅读全文 --
多功能站长工具箱网站PHP7.3源码安装教程
« 上一篇 01-05
PHP如何给网址自动添加http/https前缀
下一篇 » 01-05
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

发表评论

本站已加入互联网信息服务许可,请规范您的言行哦~

成为第一个评论的人

作者信息

热门文章

珍惜时间哦~

今日一言

- -
加载中...
换一句

标签TAG

热评文章