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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【数据结构】二叉树
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
xxxflower
2023/04/16
3040
【数据结构】二叉树
【数据结构六】图文结合详解二叉树(五千字)
叶子结点或终端结点:度为0的结点称为叶结点; 如上图:B、C、H、I...等节点为叶结点
小皮侠
2024/04/08
1880
【数据结构六】图文结合详解二叉树(五千字)
知识改变命运 数据结构 【二叉树】
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊的结点,称为根结点,根结点没有前驱结点除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、…、Tm,其中每一个集合Ti (1 <= i <=m) 又是一棵与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继树是递归定义的。
用户11319080
2024/10/17
1410
知识改变命运 数据结构 【二叉树】
《Java初阶数据结构》----5.<二叉树的概念及使用>
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树。它是根朝上,而叶朝下的。
用户11288958
2024/09/24
1560
《Java初阶数据结构》----5.<二叉树的概念及使用>
数据结构-5.二叉树
本篇博客给大家带来的是二叉树的知识点, 其中包括面试经常会提问的真题 ArrayList 和 LinkedList 的区别 .
用户11369350
2024/11/19
1350
数据结构-5.二叉树
数据结构 之 二叉树
< 2 > 或者是由一个根节点加上最多两棵分别称为左子树和右子树的二叉树组成。(左右子树可为空)
AUGENSTERN_
2024/04/09
1520
数据结构 之 二叉树
数据结构——树和二叉树
满二叉树是叶子一个也不少的树,而完全二叉树虽然前n-1层是满的,但最底层却允许在右边缺少连续若干个结点。满二叉树是完全二叉树的一个特例。
ruochen
2021/06/29
7540
【数据结构】二叉树全攻略,从实现到应用详解
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
2的n次方
2024/10/15
2120
【数据结构】二叉树全攻略,从实现到应用详解
二叉树基础及实现(一)
树是一种非线性的数据结构,它是由n(n>=0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因为它看 起来像一棵 倒挂的树 ,也就是说它是 根朝上,而叶朝下 的 。
用户11305962
2024/10/09
1520
二叉树基础及实现(一)
java实现简单二叉树「建议收藏」
若一个结点有子树,那么该结点称为子树根的“双亲”,子树的根称为该结点的“孩子”。有相同双亲的结点互为“兄弟”。一个结点的所有子树上的任何结点都是该结点的后裔。从根结点到某个结点的路径上的所有结点都是该结点的祖先。
全栈程序员站长
2022/09/04
7250
java实现简单二叉树「建议收藏」
数据结构二叉树知识点总结
术语  1. 节点的度:一个节点含有的子树的个数称为该节点的度; 2. 叶节点或终端节点:度为零的节点;  3. 非终端节点或分支节点:度不为零的节点;  4. 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;  5. 兄弟节点:具有相同父节点的节点互称为兄弟节点;  6. 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;  7. 树的高度或深度:树中节点的最大层次;  8. 堂兄弟节点:父节点在同一层的节点互为堂兄弟;  9. 节点的祖先:从根到该节点所经分支
10JQKA
2018/05/09
1.5K0
【Java】二叉树:数据海洋中灯塔式结构探秘(上)
二叉树中有一个树,我们可以猜到他和树有关,那我们先了解一下什么是树,在来了解一下二叉树
喜欢做梦
2024/11/25
1540
【Java】二叉树:数据海洋中灯塔式结构探秘(上)
Java集合与数据结构——二叉树01
  树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看 起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:
RAIN7
2022/03/29
2440
Java集合与数据结构——二叉树01
数据结构——二叉树的定义和性质
在一些电视节目中,会猜测商品价格,有的人是一点一点的数字累加,这样的策略效率太低了。其实有一种经典的折半查找算法,就类似于我们今天要说的二叉树。
蜻蜓队长
2018/08/03
1.9K0
数据结构——二叉树的定义和性质
七十六、 数据结构二叉树及其代码实现
树是一种非常重要的非线性结构,本身具有递归的性质(在其后的编程中体现的淋漓尽致)。
润森
2022/08/17
4470
七十六、 数据结构二叉树及其代码实现
数据结构与算法 -二叉树
二叉树在树结构的应用中起着非常重要的作用,因为二叉树有许多良好的性质和简单的物理表示,而任何树都可以与二叉树相互转换,这样就解决了树的存储结构及其运算中存在的复杂性。
越陌度阡
2020/11/26
4940
数据结构与算法 -二叉树
期末复习之数据结构 第6章 树和二叉树
答:最快方法:用叶子数=[n/2]=350 5. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 500 个叶子结点,有 499 个度为2的结点,有 1 个结点只有非空左子树,有 0 个结点只有非空右子树。 答:最快方法:用叶子数=[n/2]=500 ,n2=n0-1=499。 另外,最后一结点为2i属于左叶子,右叶子是空的,所以有1个非空左子树。完全二叉树的特点决定不可能有左空右不空的情况,所以非空右子树数=0. 6. 一棵含有n个结点的k叉树,可能达到的最大深度为 n ,最小深度为 2 。 答:当k=1(单叉树)时应该最深,深度=n(层);当k=n-1(n-1叉树)时应该最浅,深度=2(层),但不包括n=0或1时的特例情况。教材答案是“完全k叉树”,未定量。) 7. 二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。因而二叉树的遍历次序有六种。最常用的是三种:前序法(即按N L R次序),后序法(即按 L R N 次序)和中序法(也称对称序法,即按L N R次序)。这三种方法相互之间有关联。若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是 F E G H D C B 。 8.中序遍历的递归算法平均空间复杂度为 O(n) 。 答:即递归最大嵌套层数,即栈的占用单元数。精确值应为树的深度k+1,包括叶子的空域也递归了一次。 9. 用5个权值{3, 2, 4, 5, 1}构造的哈夫曼(Huffman)树的带权路径长度是 33 。 三、单项选择题 ( C )1. 不含任何结点的空树 。 (A)是一棵树; (B)是一棵二叉树; (C)是一棵树也是一棵二叉树; (D)既不是树也不是二叉树 答:以前的标答是B,因为那时树的定义是n≥1 ( C )2.二叉树是非线性数据结构,所以 。 (A)它不能用顺序存储结构存储; (B)它不能用链式存储结构存储; (C)顺序存储结构和链式存储结构都能存储; (D)顺序存储结构和链式存储结构都不能使用 ( C )3. 〖01年计算机研题〗 具有n(n>0)个结点的完全二叉树的深度为 。 (A) élog2(n)ù (B) ë log2(n)û (C) ë log2(n) û+1 (D) élog2(n)+1ù 注1:éx ù表示不小于x的最小整数;ë xû表示不大于x的最大整数,它们与[ ]含义不同! 注2:选(A)是错误的。例如当n为2的整数幂时就会少算一层。似乎ë log2(n) +1û是对的? ( A )4.把一棵树转换为二叉树后,这棵二叉树的形态是 。 (A)唯一的 (B)有多种 (C)有多种,但根结点都没有左孩子 (D)有多种,但根结点都没有右孩子 5. 从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在答卷的对应栏内。 树是结点的有限集合,它A 根结点,记为T。其余的结点分成为m(m≥0)个 B 的集合T1,T2,…,Tm,每个集合又都是树,此时结点T称为Ti的父结点,Ti称为T的子结点(1≤i≤m)。一个结点的子结点个数为该结点的 C 。 供选择的答案 A: ①有0个或1个 ②有0个或多个 ③有且只有1个 ④有1个或1个以上 B: ①互不相交 ② 允许相交 ③ 允许叶结点相交 ④ 允许树枝结点相交 C: ①权 ② 维数 ③ 次数(或度) ④ 序 答案:ABC=1,1,3 6. 从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在答卷的对应栏内。 二叉树 A 。在完全的二叉树中,若一个结点没有 B ,则它必定是叶结点。每棵树都能惟一地转换成与它对应的二叉树。由树转换成的二叉树里,一个结点N的左子女是N在原树里对应结点的 C ,而N的右子女是它在原树里对应结点的 D 。 供选择的答案 A: ①是特殊的树 ②不是树的特殊形式 ③是两棵树的总称 ④有是只有二个根结点的树形结构 B: ①左子结点 ② 右子结点 ③ 左子结点或者没有右子结点 ④ 兄弟 C~D: ①最左子结点 ② 最右子结点 ③ 最邻近的右兄弟 ④ 最邻近的左兄弟 ⑤ 最左的兄弟 ⑥ 最右的兄弟 答案:A= B= C= D= 答案:ABCDE=2,1,1,3 四
henu_Newxc03
2021/12/28
7110
期末复习之数据结构 第6章 树和二叉树
【数据结构】二叉树
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
羚羊角
2025/02/11
1250
【数据结构】二叉树
让你更好的理解什么是二叉树?
二叉树 6.2.1 二叉树的概念 二叉树(Binary Tree)是结点的有限集合,这个集合或者为空,或者是由一个根结点和两颗互不相交的分别称为左子树和右子树的二叉树组成。二叉树中的每个结点至多有两棵子树,且子树有左右之分,次序不能颠倒。 二叉树是一种重要的树型结构,但二叉树不是树的特例。二叉树的5种形态分别为:空二叉树、只有根结点的二叉树、根结点和左子树、根结点和右子树、根结点和左右子树。 二叉树与树的区别:二叉树中每个结点的孩子至多不超过两个,而树对结点的孩子数无限制;另外,二叉树中结点的子树有左右之
Java学习
2018/04/17
2.8K0
让你更好的理解什么是二叉树?
【数据结构】二叉树与堆
树的概念:树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的
平凡的人1
2023/10/15
2690
【数据结构】二叉树与堆
相关推荐
【数据结构】二叉树
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档