Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据结构树和二叉树知识点和递归序列

数据结构树和二叉树知识点和递归序列

作者头像
如烟花般绚烂却又稍纵即逝
发布于 2024-11-26 00:42:08
发布于 2024-11-26 00:42:08
15300
代码可运行
举报
文章被收录于专栏:javajava
运行总次数:0
代码可运行

一.树的概念

树是一种非线性数据结构,它是由n个或大于n个的结点来组成具有层次关系的一个集合(一个树及n个子树的关系集合) 把这个数据结构称之为树因为它很像一棵倒挂着的树 树的特点: 每一个结点都有零个或者n个结点组成 没有父亲结点的称为根结点 除根结点以外每一个节点都有一个父亲结点 结点之间互不相交

1.1关于树的名词解释

结点的度:一个结点含有的子树的个数称之为度。 树的度:在一棵树中,所有结点的度的最大值称之为树的度。 叶子结点或者终端结点:度为0的结点称为叶子结点/终端结点(不含有子树的结点)。 双亲结点或者父亲结点:若该结点含有子结点,则这个结点称为子结点的父亲结点。 子结点或者孩子结点:一个结点中含有子树的根结点称为该结点的子结点。 根结点:树中没有父亲结点称为根节点 结点的层次:从根开始定义为第一层,根的子结点为第二层…直到遇到所有终端结点。 树的高度:树中最大结点的层级,为树高。 一棵N个结点的树会产生n-1条边

二.二叉树的概念

二叉树是指每个节点最多有两个子树的树结构,共有五种形态 二叉树中树的度都是小于或者等于2的,不存在大于2的树

1. 二叉树性质:

性质1:二叉树第i层上的结点数最多为 2的i-1次方(i≥1)。 性质2:深度为k的二叉树至多有2的k-1次方个结点(k>=0)。 性质3:具有n个结点的二叉树的深度为log2 (n+1)。 性质4:在任意的二叉树中,若叶子结点的个数为n0,度为1的结点数为n1,度为2的结点数为n2。 表达式1:N=n0+n1+n2; 表达式2:N=n1+2*n2+1 则n0=n2+1。

三.满二叉树与完全二叉树

满二叉树:二叉树中每一个结点的度为2,为满二叉树。

非满二叉树

完全二叉树:在二叉树中,只有最下面两层结点的度可以小于2,并且最下层的叶子结点集中在左子树的位置上,如果没有集中在左树则不是一个非完全二叉树 一颗满二叉树必定是一颗完全二叉树,而完全而二叉树不一定是满二叉树。

递归前序遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public void preOrder(BinaryNode cur){
       if(cur ==null){
           return;
       }
            System.out.print(cur.val+" ");
            preOrder(cur.left);
            preOrder(cur.right);
    }

递归中序遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public void inOrder(BinaryNode cur){
        if(cur==null){
            return;
        }
        inOrder(cur.left);
        System.out.print(cur.val+" ");
        inOrder(cur.right);
    }

递归后续遍历

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 public void lastOrder(BinaryNode cur){
        if(cur==null){
            return;
        }
        inOrder(cur.left);
        inOrder(cur.right);
        System.out.print(cur.val+" ");

    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2021-02-04:第一年农场有1只成熟的母牛A,往后的每年
2021-02-04:第一年农场有1只成熟的母牛A,往后的每年:①每一只成熟的母牛都会生一只母牛 ②每一只新出生的母牛都在出生的第三年成熟 ③每一只母牛永远不会死 。请问N年后牛的数量是多少 ?
福大大架构师每日一题
2021/02/04
3430
2021-02-04:第一年农场有1只成熟的母牛A,往后的每年
深度解析算法之BFS解决FloodFill算法
题目链接 有一幅以 m x n 的二维整数数组表示的图画 image ,其中 image[i][j] 表示该图画的像素值大小。你也被给予三个整数 sr , sc 和 color 。你应该从像素 image[sr][sc] 开始对图像进行上色 填充 。
Undoom
2025/07/20
690
深度解析算法之BFS解决FloodFill算法
DFS 算法秒杀五道岛屿问题
岛屿问题是经典的面试高频题,虽然基本的岛屿问题并不难,但是岛屿问题有一些有意思的扩展,比如求子岛屿数量,求形状不同的岛屿数量等等,本文就来把这些问题一网打尽。
labuladong
2021/10/27
9640
2021-07-28:最短的桥。在给定的二维二进制数组 A 中,存
2021-07-28:最短的桥。在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。)现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。返回必须翻转的 0 的最小数目。(可以保证答案至少是 1 。)
福大大架构师每日一题
2021/07/28
4190
2021-07-28:最短的桥。在给定的二维二进制数组 A 中,存
433. 岛屿的个数遍历加递归
给一个01矩阵,求不同的岛屿的个数。 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
和蔼的zhxing
2018/09/04
5710
​LeetCode刷题实战576:出界的路径数
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2022/04/12
2380
​LeetCode刷题实战576:出界的路径数
Leetcode 200 Number of Islands 并查集
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by wate
triplebee
2018/01/12
1.2K0
剑指 Offer 13. 机器人的运动范围
一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。
Vincent-yuan
2021/07/29
4950
前端算法题目解析(二)
虽然疫情还是严峻,但总会过去。在此居家办公之际,应该趁这个时机好好提升下自我,多读书多看报,少吃零食多运动哈哈。
小皮咖
2020/02/24
8290
[LintCode] Number of Islands(岛屿个数)
0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。
HoneyMoose
2019/01/30
4740
LeetCode笔记:695. Max Area of Island
我们遍历二维数组的时候,遇到1了,肯定是要检查上下左右是否依然是1(同时注意不要超出边界),如果检查出某一边是1,则还要进一步继续检查它的上下左右是否是1,这说明我们要通过递归来做,遍历时每遇到一个1,就放到递归中去检测并计算岛屿面积。
Cloudox
2021/11/23
3270
深度搜索问题-LeetCode 200、130(DFS,Coredumped问题)
这个是某公司的面试题,但对于笔者来说,这是linux C++必须掌握的技能!不然真的小白了! 假设下面的程序,很明显,这是一个错误的程序,不可以将一个字符串直接拷贝到空指针中!
算法工程师之路
2019/11/14
6740
LeetCode200.岛屿的个数
 dfs做法,遇到1,就进入infect函数,将1及其周围是1的全部”感染“成2
mathor
2018/08/17
4760
LeetCode200.岛屿的个数
【蓝桥杯省赛】冲刺练习题【数学公式】倒计时【06】
根据算术基本定理又称唯一分解定理,对于任何一个合数, 我们都可以用几个质数的幂的乘积来表示。
红目香薰
2022/11/29
5310
【蓝桥杯省赛】冲刺练习题【数学公式】倒计时【06】
2021-10-14:被围绕的区域。给你一个 m x n 的矩阵 board
2021-10-14:被围绕的区域。给你一个 m x n 的矩阵 board ,由若干字符 'X' 和 'O' ,找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充。力扣130。
福大大架构师每日一题
2021/10/14
4620
Acwing枚举、模拟与排序(二)
cin和scanf都不会干掉第一行的回车。 在这些函数执行完成之后,执行getline之前,多执行一次getline:去掉回车。
WuShF
2024/03/08
1420
从暴力递归到动态规划
 动态规划没有那么难,但是很多老师在讲课的过程中讲的并不好,由此写下一篇文章记录学习过程
mathor
2018/09/19
7210
从暴力递归到动态规划
2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后,grid 中最大的岛屿面积是多少
2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。
福大大架构师每日一题
2023/05/07
4320
2023-05-07:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后,grid 中最大的岛屿面积是多少
web前端开发面试中常见的算法题(JS)
最近在准备秋招,做过了大大小小的公司的面试题,发现除了基础知识外,算法还是挺重要的。特意整理了一些常见的算法题,添加了自己的理解并实现。
全栈程序员站长
2022/09/07
6900
杂七杂八的练习(3)
假设你有一个长的花坛,其中一些地块种植着花,另一些没有。 然而,花不能种植在相邻的地块否则他们会争取水导致两者都死亡。 给定一个花坛(表示为包含0和1的数组,其中0表示没有种花,1表示种植着花)以及数字n。如果n个新鲜花可以种植在其中则返回真,否则返回假。
ttony0
2022/12/26
4040
推荐阅读
相关推荐
2021-02-04:第一年农场有1只成熟的母牛A,往后的每年
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验