几个问题:树按如下编号

1.寻找父节点:一个完全k叉树,如果一个节点的编号是i,求它的父节点的编号(如果有父节点的话)

先来看答案 如果是一个结点的孩子结点中的最大结点,那么最大节点编号减去根节点编号除以分支度数就是组数

这个问题搞明白后有利于对树的进一步认知,就拿这个图来说吧,

(图源https://img2020.cnblogs.com/blog/1751378/202005/1751378-20200505121616181-675919960.png)

编号5,5-1  /2=2,这就是父节点的编号了。这是怎么个原理?

减去根结点,然后剩下的就是k的整数倍了。当减去后的结点编号为k的时候,整数倍是1,这就是根结点延申出来的k个结点,因而父节点编号为1

然后,2k呢,第一个根结点延申出来k个,然后第二个结点延申出来k个,所以2k就是编号2的组别,那么一切就都可以解释了。

树就是前置结点不断延伸出后置结点的过程,所以说,第一个结点延申出了k个结点,[2,k+1]就是第一个结点延伸出来的结点,然后这组结点继续延申 2延伸出了[k+2,2k+1],3延伸出了[2k+2,3k+1],依次类推,如果是第Q个父节点,它延申出的组就是[(Q-1)*K+2,Q*K+1]

为了清晰可见和美观,我们把它画成了一棵树的结构。

回到问题原点 父节点的编号是啥, 如果最右边的孩子,就是 i-1/k  如果是最左边的孩子,那么就是 i+(k-1)-1/k  不难推到,这玩意都是在同一个整数范围内的,那就向下取整即可。

那么同样的,我们来看第二个问题

2.编号为P的结点的第i个孩子的编号是什么(如果有孩子)

那么 很显然 同样的,编号p前面的所有前置结点都已经延伸完毕,所以此刻共有结点k(p-1)+1个,那么如果i是第k个孩子,那么编号就是kp+1了,不是的话,那就k(p-1)+1+i了

3.编号为p的结点有右兄弟的条件是什么,其右兄弟的编号是什么?

理解了上面所说了,下面这些题都易如反掌了,很简单,不是最右孩子即可,就是说 p-1/k不是整数即可,编号就是p+1.

4.一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,...,nk的度为k的结点,问该树中有多少个叶子结点。

根据树的定义,除了根结点,每个结点都只有一个前驱结点,每个节点与指向它的分支一一对应,所以除了树根结点之外的所有结点数等于所有结点的分支数即度数。那么这也就是说,树的结点数等于所有结点的度数+1,总结点数为

N1+2n2+3n3+4n4+knk+1;那么叶子节点是啥呢。

度为0的结点数就是叶子结点的数目。所以就是总结点数减去所有度不为0的结点数的综合所以再减去n1,n2,n3,n4,...,nk。

重点概念就是 :结点数等于分支数+1.

5.n个结点的树中,只有度为K的分支结点和度为0的叶子结点。求该树含有的叶子节点数目。

除了树根结点之外的所有结点数等于所有结点的分支数即度数。那么这也就是说,树的结点数等于所有结点的度数+1.

N=1+kNk

如此就得出 n-1/k=Nk,那么叶子结点就是结点总数减去度为K的分支结点数。

6.n个结点的k叉树,能达到的最大深度和最小深度。

最大深度,单支树,深度n

最小深度,满k叉树,深度为 logk(n(k-1)+1)

知识瀚若烟海,学习知识的乐趣在于分享,让我们一起在代码路上越走越远吧

六个问题搞懂数据结构中的树的分支相关推荐

  1. 二叉搜索树的删除操作可以交换吗_一文看懂数据结构中的树

    通常在开始学编程的时候,你会接触一些常用数据结构.到最后一般会学到哈希表.对于修读计算机科学学位的朋友,你通常要上专门的数据结构课,从了解有关链表.队列和栈的各种知识.这些统称为线性数据结构,因为依逻 ...

  2. 一篇文章学懂数据结构中的树

    1.树知识体系搭建 2.树的基础知识 2.1 关于树结构 树形结构是非常重要的非线性结构,是以分支关系定义的一对多的层次结构. 树是n(n≥0)个结点的有限集.当n=0时,称为空树.在任意一棵非空树中 ...

  3. 【译】数据结构中关于树的一切(java版)

    你每天都那么努力,忍受了那么多的寂寞和痛苦.可我也没见你有多优秀. https://user-gold-cdn.xitu.io/2018/4/17/162d1b4c1dd95fa3?w=1080&am ...

  4. mysql 什么树_搞懂MySQL InnoDB B+树索引

    一.InnoDB索引 InnoDB支持以下几种索引: B+树索引 全文索引 哈希索引 本文将着重介绍B+树索引.其他两个全文索引和哈希索引只是做简单介绍一笔带过. 哈希索引是自适应的,也就是说这个不能 ...

  5. 一文搞懂数据治理、数据仓库、大数据平台、数据中台、报表BI体系等概念

    今天要给大家送一份极好的东西. 第一次看到这份<数据化建设知识图谱>时确实被惊艳到了,内容之详细,质量之高,强烈建议做IT.做数据相关工作的粉丝朋友们搞上一份. 一张超大的实物图谱 这次特 ...

  6. 一文弄懂数据结构中的红黑树、二叉树

    前言 红黑树 在讲红黑树之前,我们需要先了解几种树:二叉树,二叉查找树以及平衡二叉树. 二叉树 最多有 2 个孩子的树称为二叉树.由于二叉树中的每个元素只能有 2 个孩子,我们通常将它们命名为左孩子和 ...

  7. 一文搞懂数据质量怎么做,很接地气!

    作者:何永灿 来源:网络 编辑:数据一哥 全文共9017个字,建议阅读20分钟 01 数据质量保障原则 如何评估数据质量的好坏,业界有不同的标准,阿里主要从 4 个方面进行评估:完整性.准确性.一致性 ...

  8. 一文搞懂数据治理方法论

    1.什么是数据治理 数据治理是对数据资产的管理行使权力和控制的活劢集合(规划.监控和执行).数据治理职能指导其他数据管理职能如何执行. 2.开展数据治理的背景和价值 2.1 背景 –企业数据仓库/BI ...

  9. 一文搞懂数据在内存中的存储

    数据类型 整型在内存中的存储 大小端字节序 浮点型在内存中的存储 数据类型 整型家族 char         unsigned char         signed char; short     ...

最新文章

  1. 服务发现:Zookeeper vs etcd vs Consul
  2. 肝!十大 Python 机器学习库
  3. [深度学习] 自然语言处理 --- Self-Attention(二) 动画与代码演示
  4. Hadoop的安装与配置——设置单节点群集
  5. kafka分区与分组原理_大数据技术-Kafka入门
  6. PyCharm取消启动时自动加载项目
  7. c语言指针慕课,C语言-指针
  8. 一个表可以建几个索引_一个人失业在家,可以做哪些挣钱的小生意?推荐几个供参考...
  9. c语言数组未定义的会默认为什么,C语言之数组
  10. 银行简历计算机等级填错了,填错这几点,银行实习简历通过率几乎为0!
  11. Python爬虫实战之抓取猫眼电影
  12. 台式计算机无线接入,台式计算机有线连接路由器WiFi方法图步骤,可以详细设置无线内容(...
  13. 韩寒:给李彦宏先生的一封信
  14. 黑帽SEO网站优化常用的14种技巧
  15. OPEN3D(python)学习笔记-1.3 法线估计
  16. iOS中物理单位换算
  17. c语言fopen错误指针,fopen出错的原因
  18. 10分钟pandas教程
  19. vue3 如何给动态渲染的组件添加ref
  20. 「凹凸数据」历史文章合集,更新中

热门文章

  1. java判断oom_OOM排查
  2. oracle数据回流,页面的回流与重绘
  3. 汇编语言条件跳转指令汇总
  4. 模拟器APP抓包-全局代理
  5. sqlite数据库备份与恢复
  6. OLED液晶屏操作记录
  7. Django做一个简单的博客系统(11)----搜索文章
  8. 笔记本计算机怎么调出来,笔记本电脑如何恢复出厂设置【方法介绍】
  9. 计算机网络-学习交换机
  10. Android 11安装apk异常java.lang.SecurityException: Permission Denial: