一棵含有N个结点的K叉树,可能达到的最大深度和最小深度分别是多少?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一棵含有N个结点的K叉树,可能达到的最大深度和最小深度分别是多少?相关的知识,希望对你有一定的参考价值。
一棵含有N个结点的K叉树,可能达到的最大深度为n,最小为n-1除以k取整。
二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。
深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称为完全二叉树。
扩展资料:
从根结点开始,假设根结点为第1层,根结点的子节点为第2层,依此类推,如果某一个结点位于第L层,则其子节点位于第L+1层。由m(m≥0)棵互不相交的树构成一片森林。如果把一棵非空的树的根结点删除,则该树就变成了一片森林,森林中的树由原来根结点的各棵子树构成。
参考技术A一棵含有N个结点的K叉树,可能达到的最大深度为n,最小为n-1除以k取整。
二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。
在结点个数为n的各棵树中,高度最小的树的高度是1,有2层,有n-1个叶结点,1个分支结点;高度最大的树的高度是n-1,有n层,有1个叶结点,n-1个分支结点。
相关术语
①结点:包含一个数据元素及若干指向子树分支的信息。
②结点的度:一个结点拥有子树的数目称为结点的度。
③叶子结点:也称为终端结点,没有子树的结点或者度为零的结点。
④分支结点:也称为非终端结点,度不为零的结点称为非终端结点。
⑤树的度:树中所有结点的度的最大值。
参考技术B 最大深度 n最小深度 log 以k为底 (n*(k-1)+1)的对数 并对此对数向上取整 参考技术C 这行有n个结果的k叉树可能达到最大深度和最小深度,分别是1比8 参考技术D 最大深度为n+k-1(因为若最大深度是为n个节点的单支树,则该树有可能不是k叉树了,这不符合k叉树的定义了,当k为1时,最大深度才为n,所以最大深度为n+k-1才具有普遍意义!)
最小深度为以k为底(n*(k-1)+1)的对数,并对该对数向上取整
二叉树
1. 二叉树
- 二叉树(Binary Tree)是含有n个结点的有限集合,当n = 0时称为空二叉树。在非空二叉树中:
- 有且仅有一个称为根的结点
- 其余结点划分为两个互不相交的子集 L 和 R, 其中 L 和 R 也是一棵二叉树,分别称为左子树和右子树。
2. 满二叉树
- 一棵深度为 k 且有着 2^k - 1 个结点的二叉树称为满二叉树
3. 完全二叉树
- 从根起自上而下,自左而右,给满二叉树中的每个结点从1至n连续编号,编号为 i 的结点可称为 i 结点。深度为 k 且含有 n 个结点的二叉树,如果其每个结点都与深度为 k 的满二叉树中编号从 1 至 n 一一对应,则称为完全二叉树
4. 堆
- 堆是一类完全二叉树,常用语实现排序,选择最小(大)值和优先队列
- 其所有非叶子结点均不大于(或不小于)其左右孩子结点
5. 二叉查找树
- 二叉查找树(Binary Search Tree)又称为二叉排序树。或者是一棵空二叉树,或者是具有如下特性的二叉树
- 若左子树不空,则左子树上所有结点的值均小于根结点的值
- 若右子树不空,则右子树上所有结点的值均大于根结点的值
- 左、右子树也分别是二叉查找树
- 其查找效率与树的高度直接相关
6. 平衡二叉树
- 平衡二叉查找树(Balanced Binary Sort Tree),简称平衡二叉树。
- 平衡二叉树或者是棵空树,或者具有下列性质:
- 左右子树都是平衡二叉树
- 且左右子树的高度之差的绝对值不超过 1。
- 若将二叉树结点的平衡因子定义为该结点的左子树的高度减去右子树的高度,则所有结点的平衡因子只可能为 -1、0、1.
- 其中只要有一个结点的平衡因子的绝对值大于 1,那么这个棵树就失去平衡。
7. AVL树
- 平衡二叉树的一种实现
- 通过左旋、右旋、先左旋再右旋或者先右旋再左旋,来实现自平衡。
8. 红黑树
- 平衡二叉树的一种实现
- 特性:
- 根结点是黑色的
- 每个叶子结点是黑色的(指为空的叶子结点)
- 如果一个结点是红色的,则它的子树必须是黑色的
- 从一个结点到该结点的子孙结点的所有路径上包含相同数目的黑结点
- 主要用于存储有序的数据,并且通过维持树的平衡来提高搜索效率
9. B树
- 二叉查找树和平衡二叉树都是典型的二叉查找树结构,查找的时间复杂度与树的高度相关。一般而言,树的高度越低,则查找效率越高。
- 为了降低树的高度,可令每个结点存储更多元素,将平衡二叉树扩展为平衡二叉查找树。构建磁盘文件索引时其典型应用之一。
- 树中每个结点最多含有 m 棵子树
- 若根结点是非终端结点,则至少有2棵子树
- 除根结点之外所有非终端结点至少有[ m / 2]棵子树
- 每个非终端结点中包含(n, A0, K1, A1, K2, A2, ~ , Kn, An)
- Ki 为关键字,按升序排序
- 指针Ai 指向子树的根结点,Ai - 1 指向子树中所有结点的关键字均小于 Ki,且大于 Ki - 1
- 关键字的个数 n 必须满足:[ m / 2](向上取整) - 1 <= n <= m - 1
- 所有叶子结点都出现在同一层,叶子结点不包含任何信息
10. B+树
- 与B树最大的不同在于:
- 通常 B+ 树有两个头指针,一个指向根结点,一个指向关键字最小的叶子结点。
- 因此查找方式有两种:
- 从根结点开始
- 从最小关键字起按顺序查找
以上是关于一棵含有N个结点的K叉树,可能达到的最大深度和最小深度分别是多少?的主要内容,如果未能解决你的问题,请参考以下文章