A. O(n) B. O(n) C. O(nlog) D. O(log) 11.当采用分快查找时,数据的组织方式为 ( )
A.数据分成若干块,每块内数据有序
B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块
C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同
12. 二叉查找树的查找效率与二叉树的( (1))有关, 在 ((2))时其查找效率最低 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 13. 要进行顺序查找,则线性表(1);要进行折半查询,则线性表(2);若表中元素个数为n,则顺序查找的平均比较次数为(3);折半查找的平均比较次数为(4)。 (1)(2):A. 必须以顺序方式存储; B. 必须以链式方式存储;C. 既可以以顺序方式存储,也可以链式方式存储;
D. 必须以顺序方式存储,且数据已按递增或递减顺序排好; E. 必须以链式方式存储,且数据已按递增或递减的次序排好。
nn
(3)(4):A.n B.n/2 C.n*n D.n*n/2 E.log2 F.nlog2 G.(n+1)/2 H.log2(n+1)
14.在等概率情况下,线性表的顺序查找的平均查找长度ASL为( (1) ),有序表的折半查找的ASL为( (2) ),对静态树表,在最坏情况下,ASL为( (3) ),而当它是一棵平衡树时,ASL为 ( (4) ),在平衡树上删除一个结点后可以通过旋转使其平衡,在最坏情况下需( (5) )次旋转。供选择的答案:
nn2n
(1)(2)(3)(4)(5): A. O(1) B. O( log2 ) C. O((log2)) D.O(nlog2) E. O(n)
15. 对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找
失败,它们的平均查找长度是((1)) ,对于查找成功,他们的平均查找长度是((2))供选择的答案:
A. 相同的 B.不同的
16.分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )
A.(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90) C.(100,60, 80, 90, 120,110,130) D. (100,80, 60, 90, 120,130,110) 17. 在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。
A. LL B. LR C. RL D. RR 18.下列关于m阶B-树的说法错误的是( )
A.根结点至多有m棵子树 B.所有叶子都在同一层次上 C. 非叶结点至少有m/2 (m为偶数)或m/2+1(m为奇数)棵子树 D. 根结点中的数据是有序的
19. 下面关于m阶B树说法正确的是( )
①每个结点至少有两棵非空子树; ②树中每个结点至多有m一1个关键字;
③所有叶子在同一层上; ④当插入一个数据项引起B树结点分裂后,树长高一层。
A. ①②③ B. ②③ C. ②③④ D. ③
20. 下面关于B和B+树的叙述中,不正确的是( )
A. B树和B+树都是平衡的多叉树。 B. B树和B+树都可用于文件的索引结构。 C. B树和B+树都能有效地支持顺序检索。 D. B树和B+树都能有效地支持随机检索。 21. m阶B-树是一棵( ) A. m叉排序树 B. m叉平衡排序树 C. m-1叉平衡排序树 D. m+1叉平衡排序树 22.下面关于哈希(Hash,杂凑)查找的说法正确的是( )
A.哈希函数构造的越复杂越好,因为这样随机性好,冲突小 B.除留余数法是所有哈希函数中最好的
2nn
C.不存在特别好与坏的哈希函数,要视情况而定
D.若需在哈希表中删去一个元素,不管用何种方法解决冲突都只要简单的将该元素删去即可
23. 若采用链地址法构造散列表,散列函数为H(key)=key MOD 17,则需 ((1)) 个链
表。这些链的链首指针构成一个指针数组,数组的下标范围为 ((2)) (1) A.17 B. 13 C. 16 D. 任意 (2) A.0至17 B. 1至17 C. 0至16 D. 1至16 24. 关于杂凑查找说法不正确的有几个( ) (1)采用链地址法解决冲突时,查找一个元素的时间是相同的
(2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是
相同的
(3)用链地址法解决冲突易引起聚集现象 (4)再哈希法不易产生聚集 25. 假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行多少次探测?( )
A.k-1次 B. k次 C. k+1次 D. k(k+1)/2次
26. 散列表的地址区间为0-17,散列函数为H(K)=K mod 17。采用线性探测法处理冲突,并
将关键字序列26,25,72,38,8,18,59依次存储到散列表中。 (1)元素59存放在散列表中的地址是( )。
A. 8 B. 9 C. 10 D. 11
(2)存放元素59需要搜索的次数是( )。
A. 2 B. 3 C. 4 D. 5
27.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为__ __次;当使用监视哨时,若查找失败,则比较关键字的次数为__ __。
28. 在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值29,需做的关键码比较次数为____.
30.在有序表A[1..12]中,采用二分查找算法查等于A[12]的元素,所比较的元素下标依次为__________。
31. 在有序表A[1..20]中,按二分查找方法进行查找,查找长度为5的元素个数是__________
32. 高度为4的3阶b-树中,最多有__________个关键字。
33. 在有序表A[1?20]中,按二分查找方法进行查找,查找长度为4的元素的下标从小到大依次是__________
34. 给定一组数据{6,2,7,10,3,12}以它构造一棵哈夫曼树,则树高为__________,带权路径长度WPL的值为__________。
35. 在一棵m阶B-树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是__________;若在某结点中删除一个关键字而导致结点合并,则该结点中原有的关键字的个数是__________。
36. 己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需__________次查找成功,47时__________成功,查100时,需__________次才能确定不成功。
37.哈希表是通过将查找码按选定的__(1)__和 __(2)__,把结点按查找码转换为地址进行存储的线性表。哈希方法的关键是_(3)__和 __(4)__。一个好的哈希函数其转换地址应尽可能__(5)__,而且函数运算应尽可能__(6)__。
38. 平衡二叉树又称__________,其定义是__________。
39. 在哈希函数H(key)=key%p中,p值最好取__________。
40. 对于长度为255的表,采用分块查找,每块的最佳长度为__________。 41. 在n个记录的有序顺序表中进行折半查找,最大比较次数是__________。
42.有一个2000项的表,欲采用等分区间顺序查找方法进行查找,则每块的理想长度是__(1)___,分成__(2)___块最为理想,平均查找长度是__(3)___。
43.假定有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入散列表中,
至少要进行__________次探测。
44. 分块检索中,若索引表和各块内均用顺序查找,则有900个元素的线性表分成__________块最好:若分成25块,其平均查找长度为__________。
45. 执行顺序查找时,储存方式可以是__(1)__,二分法查找时,要求线性表__(2)__,分块查找时要求线性表 __(3)__,而散列表的查找,要求线性表的存储方式是 __(4)__。 46. 如果按关键码值递增的顺序依次将关键码值插入到二叉排序树中,则对这样的二叉排序
树检索时,平均比较次数为__________。 47. 如果关键码按值排序,而后用二分法依次检索这些关键码,并把检索中遇到的在二叉树
中没有出现的关键码依次插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为__________。
48. 平衡因子的定义是__________
49. 查找是非数值程序设计的一个重要技术问题,基本上分成__(1)__查找,__(2)__查找和
__(3)__查找。处理哈希冲突的方法有__(4)__、__(5)__、__(6)__和__(7)__。
50. __________法构造的哈希函数肯定不会发生冲突。
51. 具有N个关键字的B树的查找路径长度不会大于__________。
52. 在一棵有N 个结点的非平衡二叉树中进行查找,平均时间复杂度的上限(即最坏情况
平均时间复杂度)为________ 。
53. 假设有n个关键字,它们具有相同的Hash函数值,用线性探测方法解决冲突,把这n个关键字散列到大小为n的地址空间中,共计需要做__________次插入和探测操作。 54. 高度为8的平衡二叉树的结点数至少有__________个。
55. 高度为5(除叶子层之外)的三阶B-树至少有__________个结点。
56. 假定查找有序表A[1..12]中每个元素的概率相等,则进行二分查找时的平均查找长度为__________
57. 可以唯一的标识一个记录的关键字称为__________。 58. 已知二叉排序树的左右子树均不为空,则__________上所有结点的值均小于它的根结点值,__________上所有结点的值均大于它的根结点的值。
59. 动态查找表和静态查找表的重要区别在于前者包含有__________和__________运算,而后者不包含这两种运算。
60. 对于具有144 个记录的文件,若采用分块查找法,且每块长度为8,则平均查找长度为__________.
61. 127阶B-树中每个结点最多有__(1)__个关键字;除根结点外所有非终端结点至少有__(2)__棵子树;65阶B+树中除根结点外所有结点至少有__(3)__个关键字;最多有__(4)__棵子树;
62. 已知N元整型数组a存放N个学生的成绩,已按由大到小排序,以下算法是用对分(折半)查找方法统计成绩大于或等于X分的学生人数,请填空使之完善. #define N /*学生人数*/
int uprx(int a[N],int x ) /*函数返回大于等于X分的学生人数*/ { int head=1,mid,rear=N; do {mid=(head+rear)/2;
if(x<=a[mid]) __(1)__ else __(2)__; }while(__(3)__);
if (a[head] 63.假设root是一棵给定的非空查找树,对于下面给出的子程序,当执行注释中给出的调用语句时,就可以实现如下的操作:在非空查找树root中查找值为k 的结点;若值为k的结点在树中,且是一个叶子结点,则删除此叶子结点,同时置success 为“真”;若值为k的结点不在树中,或者虽然在树中,但不是叶子结点,则不进行删除,仅置success为“假”。应注意到非空查找树只包含一个结点情况,此时树中的唯一结点,既是根结点,也是叶子结点。 #include typedef struct node { int key; struct node *left, *right; } node; node *root; int k,success; void del_leaf(node **t, int k, int *sn) { node *p, *pf; p=*t; *sn=0; while(_(1)_&&!*sn) if (k==p->key) *sn =1; else { _(2)_; if (k if (*sn && p->left==NULL && p->right==null) { if (_(3)_ ) if (pf->left ==p ) pf ->left=null; else pf->right=null; else _(4)_ ; free(p); } else *sn=0; /*call form :del_leaf( &root, k, &success);*/ 64. 回答问题并填空 (1)(2分)散列表存储的基本思想是什么? (2)(4分)散列表存储中解决碰撞的基本方法有哪些?其基本思想是什么? (3)(4分)用分离的同义词子表解决碰撞和用结合的同义词表解决碰撞属于哪种基本方 法?他们各有何特点? (4)(3分)用线性探查法解决碰撞时,如何处理被删除的结点?为什么? (5)(2分)散列法的平均检索长度不随( )的增加而增加,而是随( )的增大而增加。 65. 设有一组关键字{9,01,23,14,55,20,84,27},采用哈希函数:H(key)=key mod 7 , 222 表长为10,用开放地址法的二次探测再散列方法Hi=(H(key)+di) mod 10(di=1,2,3,?,)解决冲突。要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度. 66. 设哈希表a 、b分别用向量a[0..9],b[0..9]表示 ,哈希函数均为H(key)=key MOD 7,处理冲突使用开放定址法,Hi=[H(key)+Di]MOD 10,在哈希表a中Di用线性探测再散列法,在哈希表b中Di用二次探测再散列法,试将关键字{19,24, 10,17,15,38,18,40}分别填入哈希表a,b中,并分别计算出它们的平均查找长度ASL. 67. 设哈希函数H(k)=3 K mod 11,散列地址空间为0~10,对关键字序列(32,13,49,24,38,21,4,12)按下述两种解决冲突的方法构造哈希表(1)线性探测再散列(2)链地址法,并分别求出等概率下查找成功时和查找失败时的平均查找长度ASLsucc和ASLunsucc。 68.依次输入表(30,15,28,20,24,10,12,68,35,50,46,55)中的元素,生成一棵二叉排序树 【华中理工大学 2000 五 (10分)】 (1) 试画出生成之后的二叉排序树; (2) 对该二叉排序树作中序遍历,试写出遍历序列; (3) 假定每个元素的查找概率相等,试计算该二叉排序树的平均查找长度。 69. 假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题: (1).画出描述折半查找过程的判定树; (2).若查找元素54,需依次与那些元素比较? (3).若查找元素90,需依次与那些元素比较? (4).假定每个元素的查找概率相等,求查找成功时的平均查找长度。 70. 已知二叉树排序树中某结点指针p,其双亲结点指针为fp,p为fp的左孩子,试编写算法,删除p所指结点。 71. 已知二叉树T的结点形式为(llink, data,count,rlink,),在树中查找值为X的结点,

