网友您好, 请在下方输入框内输入要搜索的题目:
题目内容
(请给出正确答案)
四叉树是一种树状结构,常用于图像或空间索引,典型体现为快速加载低清图像或地图,并随着读入数据的量的增加,逐渐提高解析度。四叉树的每个节点,恰有0或4个子节点,且每个子节点的地位也不同(在图像或空间信息处理上,子节点的地位通常表示相对位置)。 以下关于非空的四叉树的说法,何者错误?
A.四叉树的节点数量符合4k+1形式,其中k是正整数
B.若某个四叉树有n个节点,则有ceil(n*3/4)个节点为叶节点
C.若某个四叉树有n个节点,则有n//4个节点不是叶节点
D.若某个四叉树有n个节点,则树的高度有ceil(log4(n))层
参考答案和解析
B 对
更多 “四叉树是一种树状结构,常用于图像或空间索引,典型体现为快速加载低清图像或地图,并随着读入数据的量的增加,逐渐提高解析度。四叉树的每个节点,恰有0或4个子节点,且每个子节点的地位也不同(在图像或空间信息处理上,子节点的地位通常表示相对位置)。 以下关于非空的四叉树的说法,何者错误?A.四叉树的节点数量符合4k+1形式,其中k是正整数B.若某个四叉树有n个节点,则有ceil(n*3/4)个节点为叶节点C.若某个四叉树有n个节点,则有n//4个节点不是叶节点D.若某个四叉树有n个节点,则树的高度有ceil(log4(n))层” 相关考题
考题
下面关于哈夫曼树的叙述中,正确的是()A.哈夫曼树一定是完全二叉树B.哈夫曼树一定是平衡二叉树C.哈夫曼树中权值最小的两个节点互为兄弟节点D.哈夫曼树中左孩子节点小于父节点、右孩子节点大于父节点
考题
阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的内容补充完整。【说明】对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图6-15所示的最优二叉树,以及相应的结构数组Ht(如表6-14所示,其中数组元素Ht[0]不用)。结构数组Ht的类型定义如下:define MAXLEAFNUM 20struct node{char ch; /*扫当前节点表示的字符,对于非叶子节点,此域不用*/Int weight; /*当前节点的权值*/int parent; /*当前节点的父节点的下标,为0时表示无父节点*/int lchild, rchild;/*当前节点的左、右孩子节点的下标,为0时表示无对应的孩子节点*/)Ht[2*MAXLEAFNUM];用“0”或“广标识最优二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图6-15所示。若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图6-15所示的叶子节点a、b、c、d的前缀编码分别是110、0、111、10。函数void LeafCode(int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子节点,为所有的叶子节点构造前缀编码。其中,形参root为最优二叉树的根节点下标;形参n为叶子节点个数。在函数void LeafCode(int root,int n)构造过程中,将Ht[p].weight域用做被遍历节点的遍历状态标志。函数void Decode(char *buff,int root)的功能是:将前缀编码序列翻译成叶子节点的字符序列,并输出。其中,形参root为最优二叉树的根节点下标;形参buff指向前缀编码序列。【函数4.1】char **HC;void LeafCode(int root, int n){ /*为最优二叉树中的n个叶子节点构造前缀编码,root是树的根节点下标*/int I,p=root,cdlen=0;char code[20];Hc = (char **)malloc((n+1)*sizeof(char *)); /*申请字符指针数组*/For(i = 1;i<= p;++I)Ht [i]. weight = 0; /*遍历最优二叉树时用做被遍历节点的状态标志* /While (p) { /*以非递归方法遍历最优二叉树,求树中每个叶子节点的编码*/If(Ht[p].weight == 0) { /*向左*/Ht[p].weight = 1;If(Ht[p].lchild != 0) {p = Ht[p].lchild;code[cdlen++] = '0';}else if(Ht[p].rchild == 0) { /*若是叶子节点,则保存其前缀编码*/Hc[p] = (char *)malloc((cdlen+1)*sizeof(char));(1);strcpy (Hc [p],code);}}else if(Ht[p].weight == 1) { /*向右*/Ht [p].weight = 2;If(Ht[p].rchild != 0) {p = Ht [p].rchild;code[cdlen++] ='1';}}else { /*Ht[p].weight == 2,回退/Ht [p].weight = 0;p =(2);(3); /*退回父节点*/}} / *while .结束* /}【函数4.2】void Decode(char *buff,int root){ int pre = root,p;while(*buff != '\0') {p = root;&
考题
在二叉树的顺序存储中,每个节点的存储位置与其父节点、左右子树节点的位置都存在一个简单的映射关系,因此可与三叉链表对应。若某二叉树共有n个节点,采用三叉链表存储时,每个节点的数据域需要d个字节,每个指针域占用4个字节,若采用顺序存储,则最后一个节点下标为k(起始下标为1),那么采用顺序存储更节省空间的条件是(59)。A.B.C.D.
考题
若二叉树的前序遍历序列与中序遍历序列相同且树中节点数大于1,则该二叉树的______。A.只有根节点无左予树B.只有根节点无右子树C.非叶子节点只有左子树D.非叶子节点只有右子树A.B.C.D.
考题
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:特其左子树非空,则左子树上所有节点的值均小于根节点的值;若其右子树非空,则右子树上所有节点的值均大于根节点的值;其左、右子树本身就是两棵二叉排序树。根据该定义,对一棵非空的二叉排序树进行______遍历,可得到一个节点元素的递增序列。A.前序(根、左、右)B.中序(左、根、右)C.后序(左、右、根)D.层序(从树根开始,按层次)A.B.C.D.
考题
以下关于哈夫曼树的叙述,正确的是(60)。A.哈夫曼树一定是满二叉树,其每层结点数都达到最大值SX
以下关于哈夫曼树的叙述,正确的是(60)。A.哈夫曼树一定是满二叉树,其每层结点数都达到最大值B.哈夫曼树一定是平衡二叉树,其每个结点左右子树的高度差为-1、0或1C.哈夫曼树中左孩子结点的权值小于父节点、右孩子节点的权值大于父节点D.哈夫曼树中叶子节点的权值越小则距离树根越远、叶子结点的权值越大则距离树根越近
考题
最优二叉树(哈夫曼树)、最优查找树均为平均查找路径长度∑wl最小的树,其中对于最优二叉树,n表示(31);对于最优查找树,n表示(32);构造这两种树均(33)。A.节点数B.叶节点数C.非叶节点数D.度为2的节点数
考题
填空题常规四叉树每个节点通常储存()个变量,即()子节点指针、()个父节点指针和()个节点值
热门标签
最新试卷