社区
数据结构与算法
帖子详情
关于完全K叉树父子结点编号求解问题
frankzch
2003-07-31 12:03:04
是一个简单的问题啊,但是希望能有人给一个明确的思路,我不需要答案
就是完全K叉树知道某结点编号求其父结点或子结点的编号
具体的求解过程?
...全文
450
4
打赏
收藏
关于完全K叉树父子结点编号求解问题
是一个简单的问题啊,但是希望能有人给一个明确的思路,我不需要答案 就是完全K叉树知道某结点编号求其父结点或子结点的编号 具体的求解过程?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
frankzch
2003-07-31
打赏
举报
回复
好好,多谢大家!
超超的方法很直观,虽然最后的结果有点问题(子结点为i*k+1),但是你的方法给我很大的启发,相信在以后的学习中我解决此类问题会更快,而且无论根结点编号是0还是1你这个方法都适用!
(顾问团)寻开心的方法很严谨,也让我从数学的角度深刻的理解了这个问题,谢谢!!
不过只能给大家不多的分数,不好意思了,以后还会问你们,以后我会散更多的分!
寻开心
2003-07-31
打赏
举报
回复
1
这个问题的核心就是计算第N层第M个节点的自身编号,以及由这个编号反算在树上的位置
我们知道
第0层有1个节点
第一层K个节点
第二层K^2个节点
第三层K^3个节点
……
因此第N层,第M个节点的编号就是:
. K^N-1
. 1+K + K^2 + ... + K^(N-1) + M = ------------ + M
. K-1
在第N层的所有节点的编号都是满足
. K^N-1 K^(N+1)-1
. 编号处于 ------------ 和 -------- 之间
. K-1 K-1
因此定位一个已知的编号的时候,只要找到这个N,使得
. K^N-1 K^(N+1)-1
. ------------ <= M < --------
. K-1 K-1
就可以了。
知道了这个关系,由此推导编号的父子节点关系就很容易了。
从N层M个节点的编号公式
. K^N-1
. 1+K + K^2 + ... + K^(N-1) + M = ------------ + M
. K-1
知道,用K乘以这个编号,得到的是
. K^(N+1)-K K^(N+1)-1
.K*(1+K + K^2 + ... + K^(N-1) + M) = ------------ + MK = ---------- -1 + MK
. K-1 k-1
我们来看这个数值和N层M节点的子节点的关系。
N层的全部节点就是
. K^(N+1)-1
. 1+K + K^2 + ... + K^(N-1) + K^N = ------------. K-1
第M个节点的前面M-1个节点各自有K个子节点,因此它的第一个子节点的编号就是
我们来看这个数值和N层M节点的子节点的关系。
N层的全部节点就是
. K^(N+1)-1
. 1+K + K^2 + ... + K^(N-1) + K^N +(m-1)*K+1 = ------------- + MK -(k-1)
. K-1
对比它和前面的公式就可以得到两者之间的关系
反向计算也类似。
mmmcd
2003-07-31
打赏
举报
回复
画个图看看:
0
1 2 3 ... k
k+1 k+2 ... k+k 2k+1 ... 3k 3k+1 ... k*k+1 ... k*k+k
(k+1)k+1...
第i点其父:[(i-1)/k]
第i点其子:i*(k+1)+1,i*(k+1)+2, ... ,i*(k+1)+k
frankzch
2003-07-31
打赏
举报
回复
没人知道吗?还是嫌这个问题太简单了??????
谁要是答的好我另开贴给分,绝对不少于100
实在是搞不清楚啊
利用Vue-cli 3.x创建项目实现
父子
组建传递项目
Vue-cli相对于之前的 操作起来更加简洁,少了很多繁琐的操作,简单容易上手,还有ui界面 更是一些喜欢界面操作者的福音。 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。有三个组件:CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create 、vue serve 、vue ui 等命令)CLI 服务:@vue/cli-service是一个开发环境依赖。构建于webpack 和 webpack-dev-server 之上(提供 如:serve、build 和 inspect 命令)CLI 插件:给Vue 项目提供可选功能的 npm 包 (如: Babel/TypeScript 转译、ESLint 集成、unit和 e2e测试 等)
2023王道考研数据结构笔记第五章——
树
二
叉
树
是 n(n≥0)个
结点
的有限集合:①或者为空二
叉
树
,即 n = 0。②或者由一个根
结点
和两个互不相交的被称为根的左子
树
和右子
树
组成,左子
树
和右子
树
又分别是一棵二
叉
树
。二
叉
树
的特点:①每个
结点
至多只有两棵子
树
。②左右子
树
不能颠倒(二
叉
树
是有序
树
——注意区别:度为2的有序
树
二
叉
树
的五种状态:①空二
叉
树
②只有左子
树
③只有右子
树
④只有根节点⑤左右子
树
都有
结点
的权:有某种现实含义的数值(如:表示
结点
的重要性等)
结点
的带权路径长度。
DS_Tree
1-1对于一个有N个
结点
、K条边的森林,不能确定它共有几棵
树
。F[解析]设边的数目 EdgeNum,
树
的数目为 TreeNum 根据 NodeNum - 1 = EdgeNum 所以 (NodeNum1 - 1) + … + (NodeNumi - 1) = K 即 N - TreeNum = K1-2
树
是表示多对多关系的数据结构。F1-3从
树
的根
结点
到任何一个叶
结点
都有唯一的一条线性表。F1-4一棵
树
中位于同一层上的
结点
称为兄弟
结点
。F1-5一棵
树
中,某
结点
位置上方各层中的所有
结点
都是该
结点
的祖先。F2
数据结构之
树
树
树
的性质
树
中的
结点
数 = 所有
结点
的度数 + 1 度为m的
树
中第i层上至多有\(m^{i-1}\)个
结点
(i>=1) 高度为h的m
叉
树
至多有\((m^h-1)/(m-1)\)个
结点
(推导公式S=\(m^{h-1}+m^{h-2}+m^{h-3}+...+m+1\)=\((m^h-1)/(m-1)\)) 具有n个
结点
的m
叉
树
的最小高度为\(⌈log_m(n(m-1)+1)⌉\)
树
的...
数据结构第五章:
树
文章目录
树
的基本概念常考性质二
叉
树
1.基本概念2.几个特殊的二
叉
树
3.二
叉
树
常考性质4.
完全
二
叉
树
的常考性质二
叉
树
的存储结构1.顺序存储
树
的基本概念
树
是一种递归定义的数据结构 祖先
结点
、子孙
结点
、双亲
结点
(父节点)、孩子
结点
、兄弟
结点
、堂兄弟
结点
有序
树
——逻辑上看,
树
中
结点
的各子
树
从左至右是有次序的,不能互换 无序
树
——逻辑上看,
树
中
结点
的各子
树
从左至右是无次序的,可以互换 森林:森林是m(m≥0)棵互不相交的
树
的集合 常考性质 根节点没算到总度数里 三
叉
树
是每个
结点
最多三个孩子,可以没有
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章