皮皮学,免费搜题
登录
logo - 刷刷题
搜题
【简答题】
阅读下列说明、图和C代码。 [说明5-1] B一种多叉平衡查找树。一棵m阶的B树,或为空树,或为满足下列特性的m: ①每个结点最多有m棵子树; ②若根结点不是叶子结点,则它至少有两棵子树; ⑧除根之外的所有非叶子结点至少有[m/2]棵子树; ④所有的非叶子结点中包含下列数据信息: (n,A0,K1,A1,K2,A2, …,Kn,An)其中:Ki(i=1,2,…,n)为,且Ki<Ki+1(i=1,2,…,n-1);Ai(i=0,1,…,n)为指向子树根结点的指针,且指针Ai-1,所指子所有结点的均小于Ki,Ai+1,所指子所有结点的均大于Ki,n为结点中的数目。 ⑤所有的叶子结点都出现在同一层次上,并且不带信息(可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。 例如,一棵4阶B下图所示(结点中的数目省略)。 B树的阶M、bool类型、类型及B树结点的定义如下: define M 4 /*B树的阶*/ typedef enum {FALSE=0,TRUE=1}bool; typedef int ElemKeyType; typedef struct BTreeNode { int numkeys; /*结点中的数日*/ struct BTreeNode*parent; /*指向父结点的指针,树根的父结点指针为空*/ struct BTreeNode *A[M]; /*指向子树结点的指针数组*/ ElemKeyType K[M]; /*存储的数组,K[0]闲置不用*/ }BTreeNode; 函数SearchBtree(BTreeNode*root,ElemKcyTypeakey,BTreeNode:*pb)的功能是:在给定的一棵M阶B查找akey所在结点,若找到则返回TRUE,否则返回 FALSE。其中,root是指向该M阶B树根结点的指针,参数ptr返回akey所在结点的指针,若akey不在该B,则ptr返回查找失败时空指针所在结点的指针。例如,在上图所示的4阶B查找25时,ptr返回指向结点e的指针。 注;在结点中查找akey时采用二分法。 [函数5-1] bool SearchBtree(BTreeNode* root, ElemKeyType akey, BTreeNode **ptr) { int lw, hi, mid; BTreeNode*p = root; *ptr = NULL; while ( p ) { 1w = 1; hi=(1); while (1w <= hi) { mid = (1w + hi)/2; if (p -> K[mid] == akey) { *ptr = p; return TRUE; } else if ((2)) hi=mid - 1; else 1w = mid + 1; } *ptr = p; p = (3); } return FALSE; } [说明5-2] 在M阶B插入一个时,首先在最接近外部结点的某个非叶子结点中增加一个,若该结点中的个数不超过M-1,则完成插入;否则,要进行结点的“分裂”处理。所谓“分裂”,就是把结点中处于中间位置上的取出来并插入其父结点中,然后以该为分界线,把原结点分成两个结点。“分裂”过程可能会一直持续到树根,若树根结点也需要分裂,则整棵树的高度增加1。 例如,在上图所示的B插入25时,需将其插入结点e中。由于e中已经有3个,因此将24插入结点e的父结点b,并以24为分界线将结点e分裂为e1和e2两个结点,结果如下图所示。 函数Isgrowing(BTreeNode*root,ElemKeyTypeakey)的功能是:判断在给定的M阶B插入akey后,该B树的高度是否增加,若增加则返回TRUE,否则返回FALSE。其中,root是指向该M阶B树根结点的指针。 在函数Isgrwing中,首先调用函数SearchBtree(即函数5-1)查找akey是否在给定的M阶B,若在,则返回FALSE(表明无需插入akey,树的高度不会增加);否则,通过判断结点中的数目考查插入akey后该B树的高度是否增加。 [函数5-2] bool Isgrowing(BTreeNode* root, ElernKeyType akey) { BTreeNode *t, *f; if( !SearchBtree((4) )
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
参考答案:
举一反三
【单选题】Marie a des sœurs, mais Alice n’a pas _______ sœurs.
A.
une
B.
des
C.
de
D.
les
【单选题】层位关系是指堆积单位与堆积单位之间的关系。()
A.
上下
B.
早晚
C.
前后
D.
叠加
【简答题】层位关系是指单位与单位之间的 或 关系
【单选题】肝硬化病人易发生凝血功能障碍,主要是由于( )
A.
血小板减少
B.
维生素K缺乏
C.
维生素B12减少
D.
某些凝血因子不足
【多选题】层位关系指的是堆积单位与堆积单位之间的以下哪些关系?()
A.
叠压
B.
相交
C.
打破
D.
包含
【简答题】简述类型学分析应从层位关系入手,最终要经过层位关系检验的原因。
【多选题】马克思主义价值观有着自身鲜明的特征。主要 包括以下哪几方面内容?
A.
马克思主义政治价值观
B.
马克思主义经济价值观
C.
马克思主义文化价值观
D.
马克思主义生态价值观
【单选题】关于黄疸的叙述中,下列哪一项是不正确的
A.
早产儿黄疸可延迟至第3周末
B.
足月儿于生后7~10天黄疸消退
C.
生理性黄疸在生后2—3天出现,于4~5天达高峰
D.
当血清胆红素>3mg/dl时肉眼才见黄疸
E.
早产儿宜予以提前光疗,预防胆红素脑病
【多选题】职业活动中最主要的法律有《劳动法》和《公务员法》等。下列选项关于《劳动法》和《公务员法》说法正确的有()
A.
《公务员法》是我国第一部关于干部人事管理总章程性质的重要法律
B.
社会团体工作人员、农民、现役军人不适用《劳动法》
C.
提高职业技能是《劳动法》规定的劳动者的义务
D.
任人唯贤、德才兼备原则是《公务员法》的基本原则
【判断题】层位关系相同的堆积单位,地层学可以明确判断它们之间的早晚关系。()
A.
正确
B.
错误
相关题目:
参考解析:
知识点:
题目纠错 0
发布
创建自己的小题库 - 刷刷题