版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构试题库一、 单项选择题1.下列程序段所代表的算法的时间复杂度为( D )。x=n;y=0;while(x>=(y+1)*(y+1))y++;(A)O(n)2n(D)O(n)(B)O(n)(C)O(log2)2.在一个长度为 n的以顺序结构存储的线性表中,假设在线性表的任何位置删除元素的概率相等,则删除一个元素时线性表所需移动元素的平均次数为( B )。(A)n2 (B)(n-1)/2 (C)(n+1)/2 (D)n/23.在一个栈顶指针为 HS 的链栈中插入一个 *s 结点时,应执行执行操作为( C)。(A)HS->next=s; (B)s->next=HS->next;HS->next=s;(C)s->next=HS;HS=s; (D)s->next=HS;HS=HS>next;4.假设以带头结点的循环链表表示队列 Q,并且队列只设一个头指针 front,不设队列尾指针。 若要进队一个元素 *s,则在下列程序算法的空白处应添加的操作语句是( A )。voidAddQueue(structlinkqueueQ){p=Q->front;while(p->next!=Q->front)p=p->next;}(A)p->next=s;s->next=Q->front;(B)Q->front->next=s;Q->front=s;(C)s->next=p;p->next=Q->front;(D)Q->front->next=s;s->next=p;5.设高度为 h的二叉树上只有度为 0和度为 2的结点,则此类二叉树中所包含的结点数至少为( B )。(A)2h-1 (B)2h-1+1 (C)2h-1 (D)2h-1-3第 1页 共 100 页6.现有数据集 {53,30,37,12,45,24,96} ,从空二叉树逐个插入数据形成二叉排序树,若希望查找此二叉树中任一结点的平均查找长度最小,则应选择下面哪个序列输入( C)。(A)45,24,53,12,37,96,30 (B)30,24,12,37,45,96,53(C)37,24,12,30,53,45,96 (D)12,24,30,37,45,53,967.有一组数值 {5,12,9,20,3} ,用以构造哈夫曼树,则其带权路径长度 WPL 值为( D )。(A)93 (B)96 (C)123 (D)1038.已知一个有向图 G的顶点 v={v1,v2,v3,v4,v5,v6} ,其邻接表如下图所示, 根据有向图的深度优先遍历算法,从顶点 v1出发,所得到的顶点遍历序列是( B)。(A)v1,v2,v3,v6,v4,v5 (B)v1,v2,v3,v6,v5,v4(C)v1,v2,v5,v6,v3,v4 (D)v1,v2,v5,v3,v4,v6v1v2v5v4^v2^v3v5^v3v6^v4^v5v4v6^v3^v6^n9.设有m=2-1个关键字,假设对每个关键字查找的概率相等,查找失败的概率为0,若采用二分法查找一个关键字,则平均查找长度为( D)。(A)n-1 (B)n-n/m (C)(n-1)-n/m (D)(n-1)+n/m10.已知一个待散列存储的线性表{18,81,58,34,26,75,67,49,93} ,散列函数为h(k)=k%11,散列地址空间为 0~10。若采用线性探查法解决冲突,则平均查找长度为( A )。(A)5/3 (B)13/9 (C)16/9 (D)3/211.下列程序段所代表的算法的时间复杂度为( C)。y=n;x=1;第 2页 共 100 页while(x<=y)x*=2;(A)O(n)2n(D)O(n)(B)O(n)(C)O(log2)12.在一个长度为n的以顺序结构存储的线性表中,假设在线性表的任何位置插入元素的概率相等,则插入一个元素时线性表所需移动元素的平均次数为(B)。2(B)(n+1)/2(C)(n-1)/2(D)n/2(A)n13.若对一个已有序的线性表最频繁的操作是查找值为x的元素(假设存在的话),则采用(D)存储方式实现查找,其算法的时间复杂度为最小。(A)单链表(B)双链表(C)单循环链表(D)顺序表14.一个带头结点 head的循环单链表为空的判断条件是( C)。(A)head==NULL (B)head->next==NULL(C)head->next==head (D)head!=NULL15.若链队列 HQ 中只有一个结点,则队列的头指针和尾指针满足下列条件( D )。(A)HQ->rear->next==HQ->front (B)HQ->front->next==HQ->rear->next(C)HQ->front==HQ->rear (D)HQ->front->next==HQ->rear16.从一个栈顶指针为 HS的链栈中删除一个结点时,用 x保存被删除结点的值,则应执行操作为( A)。(A)x=HS->data;HS=HS->next; (B)x=HS->data;HS->NEXT=NULL;(C)HS=HS->next;x=HS->data; (D)x=HS->data;HS=NULL;17.一棵有 n个结点的满二叉树,有 m个叶子结点,深度为 h,那么 n、m和h满足条件( D )。(A)n=m+h (B)h+m=2n (C)m=h-1 (D)n=2h-118.一棵左、右子 树均不 为空的二 叉树在 先序线 索化后, 其空指 针域数为( B )。(A)0 (B)1 (C)2 (D)不确定19.有一组数值 {5,12,9,20,3} ,用以构造哈夫曼树,则其带权路径长度 WPL 值为( C)。第 3页 共 100 页(A)49 (B)96 (C)103 (D)12520.在一个 n个结点的二叉排序树中查找一个关键字, 进行关键字比较次数最大值为(A)。(A)n(B)n/2nn(C)log2(D)n*log221.已知有向图 G=(V,E),其中 V={v1,v2,v3,v4,v5,v6} ,则下列边集合 E中A)所对应的有向图没有拓扑序列。E={<v2,v1>,<v6,v2>,<v1,v3>,<v2,v3>,<v5,v3>,<v3,v4>,<v4,v6>,<v5,v6>}E={<v1,v2>,<v1,v3>,<v1,v4>,<v3,v5>,<v3,v2>,<v4,v5>,<v6,v5>,<v6,v4>}E={<v1,v3>,<v1,v4>,<v1,v5>,<v2,v3>,<v2,v2>,<v3,v5>,<v3,v6>,<v4,v5>,<v4,v6>,<v5,v6>}E={<v1,v2>,<v1,v3>,<v2,v3>,<v1,v4>,<v2,v5>,<v3,v6>,<v4,v6>,<v5,v6>}22.冒泡排序算法在最好情况下的时间复杂度为(B)。(A)O(log2n)(B)O(n)(C)O(1)2(D)O(n)23.在下列内部排序方法中, 排序时不稳定的, 而且关键字的比较次数与记录的初始排列次序无关的是( D )。(A)快速排序 (B)冒泡排序 (C)归并排序 (D)堆排序24.已知一个待散列存储的线性表{18,81,58,34,26,75,67,49,93} ,散列函数为h(k)=k%11,散列地址空间为0~10。若采用线性探查法解决冲突,则平均查找长度为(C)。(A)5/3 (B)13/9 (C)16/9 (D)3/225.下列程序段所代表的算法的时间复杂度为( D)。i=1;j=0;while(i<=n){i+=j;j++;}(A)O(n)2n(D)O(n)(B)O(n)(C)O(log2)第 4页 共 100 页26.将两个各有 n个元素的有序表归并成一个有序表, 在最坏的情况下, 其比较次数是( A )。(A)2n-1 (B)n (C)n+1 (D)n-127.若某链表中最常用的操作是在最后的一个结点之后插入一个结点或删除最后一个结点,则采用( D)存储方式最节省运行时间。(A)单链表 (B)单循环链表 (C)无头双向链表 (D)带头双向链表28.已知head是一个非空单链表的头指针,指针p指向单链表的最后一个结点,若要在p之后插入一个新结点*s,并将单链表变为循环单链表,则应执行的操作是(B)。(A)s->next=p->next;p->next=s; (B)s->next=head;p->next=s;(C)s->next=p->next;p->next=head; (D)s->next=p->next;s->next=p;29.已知用循环链表表示的队列长度为 n,若只设头指针,则出队和入队一个元素的时间复杂度分别是( B )。(A)O(1)和O(1) (B)O(1)和O(n)(C)O(n)和O(1) (D)O(n) 和O(n)30.设链队列Q的头指针和尾指针分别为front和rear,初始时队列为空,若向队列插入一个元素*s,则应执行的指针操作为(C)。(A)Q->front->next=s;s->next=Q->rear;Q->rear=NULL;(B)s->next=Q->front;Q->rear->next=s;Q->rear=NULL;(C)Q->rear->next=s;Q->rear=s;s->next=NULL;(D)Q->front->next=s;Q->rear=s;s->next=NULL;31.已知一个带权图的顶点集 V和边集 G分别为:V={1,2,3,4,5,6,7,8};E={(3,1)6,(3,4)7,(3,7)5,(1,2)3,(1,4)4,(4,7)8,(4,5)4,(7,8)5,(2,6)3,(2,5)5,(5,8)8,(5,6)5,(8,6)6},则该图的最小生成树的权值为(C)。(A)24(B)29(C)30(D)3132.当待排序的关键字个数 n很小,且初始排列为逆序时, 采用下列排序方法中的( D ),算法的时间复杂度最小。第 5页 共 100 页(A)直接插入排序 (B)简单选择排序(C)冒泡排序 (D)快速排序33.对二叉排序树进行 ( C)遍历,可以得到该二叉树所有结点构成的排序序列。(A)层次 (B)前序 (C)中序 (D)后序34.已知一个长度为 12的线性表( 8,2,5,7,12,3,10,4,1,6,9,11),并将线性表中的元素依次插入到一个原先为空的二叉排序树中去。假设查找每一个元素的概率相同,则查找该二叉树中任一结点的平均查找长度为( A )。(A)10/3 (B)13/3 (C)37/12 (D)13/235.一组关键字序列 {15,92,124,5,27,28,18,6,36,34,30,26,32,259},将它们用散列函数 H(key)=keyMOD11 按顺序散列到 HASH 表HT(0:10)中,用链地址解决冲突。假设查找每一个元素的概率相同,则查找该 HASH 表中任一元素的平均查找长度为( C)。(A)3/2 (B)10/7 (C)11/7 (D)9/736.以数据集 {4,5,6,7,12,18,10}为结点权值所构造的哈夫曼树,则其带权路径长度 WPL为( A )。(A)165 (B)203 (C)124 (D)18737.假定对线性表 R[0⋯n-1]进行分块查找, 若将表均匀地分为 b块,每块含有 n/b个记录;又假定表中每个记录的查找概率相等,并用顺序查找确定所在的块,若要使分块查找的平均查找长度 ASL 最小,则分块数 b的值应为( B )。(A) n (B) n+1 (C)「log2n」 (D)「log2n」+138.对n个记录进行直接插入排序, 所需的关键字比较次数的最大值和最小值分别是( C)。(A)n(n+1)/2 和n (B)n(n-1)/2 和n-1(C)n(n+1)/2-1 和n-1 (D)n2和n39.若在一个具有n个结点的有序单链表中插入一个新结点并仍然有序,则该操作的时间复杂度是()。(A)O(1)2n(D)O(n)(B)O(n)(C)O(nlog2)40.在一个头结点为 head的空循环链表中插入一个结点 s,则指针 s应执行操作第 6页 共 100 页( )。(A)head->next=s;s->next=NULL;(B)s->next=head;head->next=NULL;(C)head->next=s;s->next=head->next;(D)s->next=head;head->next=s;41.设链队列Q的头指针和尾指针分别为front和rear,队中元素个数为n(n>1),指针*p指向队首元素m。若删除元素m,则应进行的指针操作为()。(A)Q->front->next=p->next (B)Q->rear=Q->front(C)Q->front=p->rear (D)Q->rear=p->next42.假设二叉树 T中有 n个叶子结点,且所有非叶子结点都有左、右子树,那么二叉树 T共有( )个结点。(A)2n(B)2n-1(C)2n+1(D)2n+243.已知有向图 G的邻接矩阵如下所示,则下列序列中( )不可能是图 G的拓扑序列。(A)v1,v6,v3,v4,v2,v5 (B)v1,v6,v4,v3,v2,v5(C)v1,v3,v2,v4,v6,v5 (D)v1,v3,v6,v4,v5,v201110000000001001000001000000000011044.已知一棵二叉树的结点数据采用顺序存储结构, 数组内容如下表所示, 则该二叉树的后序遍历序列为( )。123456789101112131415161718192021EAFDGCJIHB(A)ACBDJEFIGH (B)ABCDJEFHGI(C)BCJDAHIGFE (D)EADCBJFGIH第 7页 共 100 页45.若T为n个结点的完全二叉树,则 T的叶子结点数为( )。(A)n/2 (B)(n-2)/2 (C)(n-1)/2 (D)(n+1)/246.有一组数值14,21,32,15,28,用以构造huffman树,则其WPL值为()。(A)267(B)189(C)110(D)29447.采用折半插入排序,关键字的比较次数与移动次数分别为()。(A)O(n),O(log2n)2(B)O(n),O(log2n)22(C)O(log2n),O(n)(D)O(nlog2n),O(n)48.假设结点序列为 {60,30,90,50,95,70,40,80} ,以此构成一棵二叉排序树,则在该二叉排序树上查找一个结点的平均查找长度为( )。(A)23/8 (B)11/4 (C)9/2 (D)449.下面程序段的时间复杂性的量级为( D )。for(i=1;i <=n;i++)for(j=1;j<=m;j++){c[i][j]=0;for(k=1;k <=w;k++)c[i][j]+=a[i][k]*b[k][j]}(A)O(i*j*k) (B)O(n*m*k)(C)O(n*j*k) (D)O(n*m*w)50.在一个长度为
n的线性表中, 删除值为
x的元素时需要比较元素和移动元素的总次数为(
C )。(A)(n+1)
/2
(B)n/2(C)n
(D)n+151.利用3,6,8,12,5,7这六个值作为叶子结点的权,生成一棵哈夫曼树,该树的深度为( B )。(A)3 (B)4 (C)5 (D)652.一棵二叉树
的广义表表示为第 8
a(b(c,d),e(,f(g))),页共100页
则得到的层次遍历序列为( D )。(A)a,b,c,d,e,f,g (B)c,b,d,a,e,g,f(C)c,d,b,g,f,e,a (D)a,b,e,c,d,f,g53.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()。(1≤i≤n+1)(A)O(0)(B)O(1)(C)O(n)(D)O(n2)54.若在线性表中采用折半查找法查找元素,该线性表应该()。(A)元素按值有序(B)采用顺序存储结构元素按值有序,且采用顺序存储结构元素按值有序,且采用链式存储结构55.已知一算术表达式的中缀形式为 A+B*C-D/E ,后缀形式为 ABC*+DE/- ,其前缀形式为( )。–A+B*C/DE(B)–A+B*CD/E(C)-+*ABC/DE(D)-+A*BC/DE56.若二叉树采用二叉链表存储结构, 要交换其所有分支结点左右子树的位置, 利用( )遍历方法最合适。(A)前序 (B)中序 (C)后序 (D)按层次57.对二叉排序树进行( )遍历,可以得到该二叉树所有结点构成的排序序列。(A) 前序 (B)中序 (C)后序 (D)按层次58.具有n个顶点的有向图最多有( )条边。(A)n (B)n(n—1) Cn(n+1) (D)n259.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为()排序法。(A)插入(B)选择(C)shell(D)二路归并60.排序趟数与序列的原始状态有关的排序方法是()排序法。(A)插入(B)选择(C)冒泡(D)快速61.下面给出的四种排序法中( )排序法是不稳定性排序法。第 9页 共 100 页(A)插入(B)冒泡(C)二路归并(D)堆62.一个对象序列的排序码为{46,79,56,38,40,84},采用快速排序以位于最左位置的对象为基准而得到的第一次划分结果为()。(A){38,46,79,56,40,84}(B){38,79,56,46,40,84}(C){40,38,46,56,79,84}(D){38,46,56,79,40,84}63.线性链表不具有的特点是()。(A)随机访问(B)不必事先估计所需存储空间大小(C)插入与删除时不必移动元素(D)所需空间与线性表长度成正比64.设F是一个森林,B是由F转换得到的二叉树,F中有n个非叶结点,则B中右指针域为空的结点有()个。(A)n-1(B)n(C)n+1(D)n+265.具有65个结点的完全二叉树的高度为()。(根的层次号为0)(A)8(B)7(C)6(D)566.若待排序对象序列在排序前已按其排序码递增顺序排序,则采用()方法比较次数最少。(A)直接插入排序(B)快速排序(C)归并排序(D)直接选择排序67.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。(A)3(B)2(C)1(D)1/268.对有14个数据元素的有序表R[14]进行折半搜索,搜索到R[3]的关键码等于给定值,此时元素比较顺序依次为()。(A)R[0],R[1],R[2],R[3](B)R[0],R[13],R[2],R[3](C)R[6],R[2],R[4],R[3](D)R[6],R[4],R[2],R[3]69.若度为 m的哈夫曼树中 ,其叶结点个数为 n,则非叶结点的个数为( )。(A)[(n+1)/(m+1)]-1 (B)[n/m]-1(C)[(n-1)/(m-1)] (D)[n/(m-1)]-1第 10页 共 100 页70.下面关于算法说法错误的是( )。算法最终必须由计算机程序实现为解决某问题的算法同为该问题编写的程序含义是相同的算法的可行性是指指令不能有二义性以上几个都是错误的71.以下与数据的存储结构无关的术语是()。(A)循环队列(B)链表(C)哈希表(D)栈72.以下数据结构中,哪一个是线性结构()。(A)广义表(B)二叉树(C)稀疏矩阵(D)串73.以下那一个术语与数据的存储结构无关?()(A)栈(B)哈希表(C)线索树(D)双向链表74.在下面的程序段中,对 x的赋值语句的频度为( )。FORi:=1 TO n DOFORj:=1 TO n DOx:=x+1;(A)O(2n) (B)O(n) (C)O(n2) (D)O(log 2n)75.以下哪个数据结构不是多型数据类型( )。(A)栈 (B)广义表 (C)有向图 (D)字符串76.连续存储设计时,存储单元的地址()。(A)一定连续(B)一定不连续(C)不一定连续(D)部分连续,部分不连续77.一棵左右子树均不空的二叉树在先序前驱和后序后继线索化后,其空链域数为( A )。(A)0 (B)1 (C)2 (D)不确定78.设图G采用邻接表存储,则拓扑排序算法的时间复杂度是( B)。第 11页 共 100 页(A)O(n) (B)O(n+e) (C)O(n2) (D)O(n*e)79.下列排序算法中,时间复杂度为O(nlog2n)且占用额外空间最少的是(A)。(A)堆排序(B)冒泡排序(C)快速排序(D)SHELL排序80.已知数据表A中每个元素距其最终位置不远,则采用(B)排序算法最节省时间。(A)堆排序(B)插入排序(C)快速排序(D)直接选择排序81.串是( D )。(A)不少于一个字母的序列 (B)任意个字母的序列(C)不少于一个字符的序列 (D)有限个字符的序列82.一个栈的输入序列为 12345,则下列序列中是栈的输出序列的是( A )。(A)23415 (B)54132 (C)31245 (D)1425383.设循环队列中数组的下标范围是 1~n,其头尾指针分别为 f和r,则其元素个数为( D )。(A)r-f (B)r-f+1 (C)(r-f)modn+1 (D)(r-f+n)modn84.二叉树在线索化后,仍不能有效求解的问题是(D)。(A)先序线索二叉树中求先序后继(B)中序线索二叉树中求中序后继(C)中序线索二叉树中求中序前驱(D)后序线索二叉树中求后序后继85.求最短路径的FLOYD算法的时间复杂度为(D)。(A)O(n)(B)O(n+e)(C)O(n2)(D)O(n3)86.一棵左右子树不空的二叉树在先序线索化后,其空指针域数为( B)。(A)0 (B)1 (C)2 (D)不确定87.数组A[1..5,1..6]的每个元素占 5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为(A)。(A)1140(B)1145(C)1120(D)112588.在下列排序算法中, 在待排序的数据表已经为有序时, 花费时间反而最多的是( A )。(A)快速排序 (B)希尔排序 (C)冒泡排序 (D)堆排序89.对有 18 个元素的有序表做折半查找,则查找 A[3]的比较序列的下标依次为( D )。(A)1-2-3 (B)9-5-2-3 (C)9-5-3 (D)9-4-2-3第 12页 共 100 页90.下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是( D )。(A)堆排序 (B)冒泡排序 (C)快速排序 (D)直接插入排序91.在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡点为A,并已知A的左孩子的平衡因子为-1,右孩子的平衡因子为0,则做(B)型调整以使其平衡。(A)LL(B)LR(C)RL(D)RR92.下列各式中,按增长率由小至大的顺序正确排列的是()。(A)n,n!,2n,n3/2(B)n3/2,2n,nlogn,2100(C)2n,logn,nlogn,n3/2(D)2100,logn,2n,nn93.若要在单链表中的结点 *p之后插入一个结点 *s,则应执行的语句是( )。(A)s->next=p->next;p->next=s;(B)p->next=s;s->next=p->next(C)p->next=s->next;s->next=p;(D)s->next=p;p->next=s->next;94.若要在 O(1)的时间复杂度上实现两个循环链表头尾相接,则应对两个循环链表各设置一个指针,分别指向( )。(A)各自的头结点 (B)各自的尾结点(C)各自的第一个元素结点 (D)一个表的头结点,另一个表的尾结点95.栈的两种常用存储结构分别为()。(A)顺序存储结构和链式存储结构(B)顺序存储结构和散列存储结构(C)链式存储结构和索引存储结构(D)链式存储结构和散列存储结构96.已知循环队列的存储空间为数组data[21],且当前队列的头指针和尾指针的值分别为8和3,则该队的当前长度为()。(A)5(B)6(C)16(D)1797.已知在如下定义的链串结点中, 每个字符占 1个字节, 指针占 4个字节,则该链串的存储密度为( )。typedefstructnode{chardate[8];structnode*next;}LinkStrNode;第 13页 共 100 页(A)1/4 (B)1/2 (C)2/3 (D)3/498.应用简单的匹配算法对主串 s=“BDBABDABDAB ”与子串 t=“BDA”进行模式匹配,在匹配成功时,进行的字符比较总次数为( )。(A)7 (B)9 (C)10 (D)1299.二维数组A[20][10]采用列优先的存储方法,若每个元素占2个存储单元,且第1个元素的首地址为200,则元素A[8][9]的存储地址为()。(A)574(B)576(C)578(D)580100.对广义表L=((a,b),c,d)进行操作tail(head(L))的结果是()。(A)(c,d)(B)(d)(C)b(D)(b)101. 已知一棵树的前序序列为 ABCDEF ,后序序列为 CEDFBA ,则对该树进行层次遍历得到的序列为( )。(A)ABCDEF (B)ABCEFD (C)ABFCDE (D)ABCDFE102. 一个含 n个顶点和 e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为( )。(A)O(n) (B)O(e) (C)O(n+e) (D)O(n2)103.在关键字序列(12,23,34,45,56,67,78,89,91)中二分查找关键字为45,89和12的结点时,所需进行的比较次数分别为()。(A)4,4,3(B)4,3,3(C)3,4,4(D)3,3,4104.下列排序方法中,最好与最坏时间复杂度不相同的排序方法是()。(A)冒泡排序(B)直接选择排序(C)堆排序(D)归并排序105. 已知含 10个结点的二叉排序树是一棵完全二叉树, 则该二叉排序树在等概率情况下查找成功的平均查找长度等于( )。(A)1.0 (B)2.9 (C)3.4 (D)5.5106.在下列各种文件中,不能进行顺序查找的文件是()。(A)顺序文件(B)索引文件(C)散列文件(D)多重表文件107. 下面带有 @标记的语句的频度 (n>10)是( )。for(inti=0;i<n-1;i++)for(intj=i+1;j<n;j++)@cout<<i<<j<<endl;(A)n*(n-1)/2 (B)n*n/2 (C)n*(n+1)/2 (D)不确定第 14页 共 100 页108.已知使用顺序表存储数据,表长为n,假设在表中的任意位置插入元素的概率相等,则插入一个元素,平均需要移动的元素个数()。(A)(n-1)/2(B)n/2(C)(n+1)/2(D)不确定109.在双向链表p所指结点之后插入s所指结点的操作是()。(A)pright=s;sleft=p;prightleft=s;sright=pright;(B)pright=s;prightleft=s;sleft=p;sright=pright;(C)sleft=p;sright=pright;pright=s;prightleft=s;(D)sleft=p;sright=pright;prightleft=s;pright=s;110.字符串相等的充分必要条件是()。(A)串长度相等(B)串使用相同的存储结构(C)串相同位置对应的字符相等(D)A和C111.将一个递归算法改为对应的非递归算法时,通常需要使用()。(A)数组(B)栈(C)队列(D)二叉树112. 一个栈的入栈序列 1,2,3,4,5, 则栈的不可能的输出序列是( )。(A)12345 (B)54321 (C)32514 (D)12354113. 设循环队列中数组的下标范围是 1~n,其头尾指针分别为 f和r,则其元素个数为( )。(A)r-f (B)r-f+1 (C)(r-f)modn+1 (D)(r-f+n)modn114. 某二叉树的前序遍历结点访问顺序是 ABDEFCGH, 中序遍历的结点访问顺序是 DBFEAGHC, 则其后序遍历的结点访问顺序是( )。(A)DFEBHCGA (B)DFEBHGCA(C)DEFBHGCA (D)DFEHBGCA115. 正则二叉树是只有度为 0和2的结点的二叉树,已知正则二叉树的叶子结点个数为 n,则该二叉树总得结点数为( )。(A) n+1 (B)2*n (C)2*n+1 (D)2*n-1116. 下面关于排序的说法错误的是( )。快速排序、归并排序都是一种不稳定的排序方法直接插入排序和折半插入排序移动元素的次数相同简单选择排序移动元素的次数最少根据排序需要的平均时间,快速排序是目前最好的一种内部排序方法117. 折半查找有序表( 3,4,5,10,13,14,20,30),若查找元素 3, 则第 15页 共 100 页被比较的元素依次为( )。(A)10,20,30 (B)10,14,30 (C)13,3 (D)10,4,3118. 下面关于栈和队列的说法正确的是( )。栈是先进先出的线性表,队列是后进先出的线性表栈是先进先出的线性表,队列也是先进先出的线性表栈是后进先出的线性表,队列是先进先出的线性表栈是后进先出的线性表,队列也是后进先出的线性表119. 两个各有 n个元素的有序列表并成一个有序表,其最少的比较次数是( )。(A)n (B)2n-1 (C)2n (D)n-1120. 设循环队列中数组的下标范围是 0~n-1,f表示队首元素的前驱位置, r表示队尾元素的位置,则队列中元素个数为( )。(A)r-f (B)r-f1 (C)(r-f1)modn (D)(r-fn)modn121.一个5行6列的二维数组s采用从最后一行开始,每一行的元素从右至左的方式映射到一维数组a中,s和a的下标均从0开始,则s[3][3]在a中的下标是()。(A)7(B)8(C)9(D)10122. 设只含根结点的二叉树的高度为 1,则高度为 n的二叉树中所含叶子结点的个数最多为( )个。(A)2n (B)n (C)2n-1 (D)2n-1123.设高度为h的二叉树上只有度为0和度为2的结点,则此二叉树中所包含的结点数至少为()个(设只含根结点的二叉树的高度为1)。(A)2h(B)2h-1(C)2h+1(D)h+1124.对一棵二叉检索树进行()得到的结点序列是一个有序序列。(A)前序周游(B)中序周游(C)后序周游(D)层次周游125. 一棵前序序列为 1,2,3,4的二叉树,其中序序列不可能是( ) 。(A)4,1,2,3 (B)4,3,2,1 (C)2,4,3,1 (D)3,4,2,1126.在含n个顶点和e条边的有向图的邻接矩阵中,零元素的个数为()。(A)e(B)2e(C)n2-e(D)n2-2e第 16页 共 100 页127. 具有 n个顶点和 e条边的图的深度优先搜索算法的时间复杂度为( )。(A)O(n) (B)O(n3) (C)O(n2) (D)O(ne)128.如果具有n个顶点的图是一个环,则它有()棵生成树。(A)n(B)nl(C)n-l(D)2n129. 堆排序算法在平均情况下的时间复杂度为( )。(A)O(n) (B)O(nlogn) (C)O(n2) (D)O(logn)130. 在待排序数据已基本有序的前提下, 下述排序方法中效率最高的是 ( )。(A)直接插入排序 (B)直接选择排序 (C)快速排序 (D)归并排序131.在理想情况下,散列表中查找元素所需的比较次数为()。(A)n(B)O(C)n/2(D)1132. 在一棵 m阶B树中,若在某结点中插入一个新关键字而引起该结点分裂,则此结点中原有的关键字的个数是( )。(A)m (B)m+1 (C)m-l (D)m/2133.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为(C)。(A)R-F(B)F-R(C)(R-F+M)%M(D)(F-R+M)%M134.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A)。(A)BADC(B)BCDA(C)CDAB(D)CBDA135.设某完全无向图中有n个顶点,则该完全无向图中有(A)条边。(A)n(n-1)/2(B)n(n-1)(C)n2(D)n2-1136.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(C)。(A)9(B)10(C)11(D)12137.设某有向图中有n个顶点,则该有向图对应的邻接表中有(B)个表头结点。(A)n-1(B)n(C)n+1(D)2n-1第 17页 共 100 页138.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为(C)。(A)2,3,5,8,6(B)3,2,5,8,6(C)3,2,5,6,8(D)2,3,6,5,8139.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是(B)。线性结构(B)树型结构(C)物理结构(D)图型结构140.下面程序的时间复杂为(B)for(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++)t=t*j;s=s+t;}(A)O(n)(B)O(n2)(C)O(n3)(D)O(n4)141.设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A)。(A)q=p->next;p->data=q->data;p->next=q->next;free(q);(B)q=p->next;q->data=p->data;p->next=q->next;free(q);(C)q=p->next;p->next=q->next;free(q);(D)q=p->next;p->data=q->data;free(q);142.设有n个待排序的记录关键字,则在堆排序中需要(A)个辅助记录单元。(A)1(B)n(C)nlog2n(D)n2143.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)。10,15,14,18,20,36,40,2110,15,14,18,20,40,36,2110,15,14,20,18,40,36,2l15,10,14,18,20,36,40,21144. 设二叉排序树中有 n 个结点,则在二叉排序树的平均平均查找长度为( B )。(A)O(1) (B)O(log2n) (C)log2n(D)O(n2)第 18页 共 100 页145. 设无向图 G中有 n个顶点 e条边,则其对应的邻接表中的表头结点和表结点的个数分别为( D)。(A)n,e(B)e,n(C)2n,e (D)n,2e146.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边。(A)n(n-1)(B)n+1(C)n(D)n(n+1)147.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列(B)方法可以达到此目的。快速排序(B)堆排序(C)归并排序(D)插入排序148. 下列四种排序中( D)的空间复杂度最大。(A) 插入排序 (B) 冒泡排序 (C) 堆排序 (D) 归并排序149.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C)。(A)O(n)(B)O(nlog2n)(C)O(1)(D)O(n2)150. 设一棵二叉树的深度为 k,则该二叉树中最多有( D )个结点。(A)2k-1 (B)2k (C)2k-1 (D)2k-1151. 设某无向图中有 n 个顶点 e条边,则该无向图中所有顶点的入度之和为( D )。(A)n (B)e (C)2n (D)2e152.在二叉排序树中插入一个结点的时间复杂度为(B)。(A)O(1)(B)O(n)(C)O(log2n)(D)O(n2)153. 设某有向图的邻接表中有 n个表头结点和 m个表结点, 则该图中有 ( C)条有向边。(A)n (B)n-1 (C)m (D)m-1154. 设一组初始记录关键字序列为 (345,253,674,924,627),则用基数排序需要进行( A )趟的分配和回收才能使得初始关键字序列变成有序序列。(A)3 (B)4 (C)5 (D)8155. 设用链表作为栈的存储结构则退栈操作( B)。第 19页 共 100 页(A) 必须判别栈是否为满 (B) 必须判别栈是否为空(C) 判别栈元素的类型 (D) 对栈不作任何判别156. 下列四种排序中( A)的空间复杂度最大。快速排序(B)冒泡排序(C)希尔排序(D)堆157.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是(C)。(A)N0=N1+1(B)N0=Nl+N2(C)N0=N2+1(D)N0=2N1+l158.设有序顺序表中有n个数据元素,则利用二分查找法查找数据元素X的最多比较次数不超过(A)。(A)log2n+1(B)log2n-1(C)log2n(D)log2(n+1)159. 数据的最小单位是( A)。数据项(B)数据类型(C)数据元素(D)数据变量160.设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为(B)。(A)40,50,20,95(B)15,40,60,20(C)15,20,40,45(D)45,40,15,20161.设一组初始记录关键字序列为(25,50,15,35,80,85,20,40,36,70),其中含有 5个长度为 2的有序子表,则用归并排序的方法对该记录关键字序列进行一趟归并后的结果为( A)。15,25,35,50,20,40,80,85,36,7015,25,35,50,80,20,85,40,70,3615,25,35,50,80,85,20,36,40,7015,25,35,50,80,20,36,40,70,85162. 设一个有序的单链表中有 n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( D )。(A)O(log2n) (B)O(1) (C)O(n2) (D)O(n)163.设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,⋯⋯,度数为m的结点数为Nm,则N0(B)。=第 20页 共 100 页(A)Nl+N2+ ⋯⋯+Nm(B)l+N2+2N3+3N4+ ⋯⋯+(m-1)NmN2+2N3+3N4+⋯⋯+(m-1)Nm2Nl+3N2+⋯⋯+(m+1)Nm164. 设有序表中有 1000个元素,则用二分查找查找元素 X最多需要比较 ( B)次。(A)25(B)10(C)7(D)1165.设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为(B)。(A)abedfc(B)acfebd(C)aebdfc(D)aedfcb166.设输入序列是1、2、3、⋯⋯、n,经过栈的作用后输出序列的第一个元素是n,则输出序列中第i个输出元素是(C)。(A)n-i(B)n-1-i(C)n+1-i(D)不能确定167.设一组初始记录关键字序列为(45,80,55,40,42,85),则以第一个记录关键字45为基准而得到一趟快速排序的结果是(C)。(A)40,42,45,55,80,83(B)42,40,45,80,85,88(C)42,40,45,55,80,85(D)42,40,45,85,55,80168. 设一组权值集合 W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为( D )。(A)20 (B)30 (C)40 (D)45169.执行一趟快速排序能够得到的序列是(A)。(A)[41,12,34,45,27]55[72,63](B)[45,34,12,41]55[72,63,27](C)[63,12,34,45,27]55[41,72](D)[12,27,45,41]55[34,63,72]170.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是(A)。(A)head==0(B)head->next==0(C)head->next==head(D)head!=0第 21页 共 100 页171. 时间复杂度不受数据初始状态影响而恒为 O(nlog2n)的是( A )。堆排序(B)冒泡排序(C)希尔排序(D)快速排序172.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D)。空或只有一个结点(B)高度等于其结点数(C)任一结点无左孩子(D)任一结点无右孩子173.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是(D)。(A)堆排序(B)冒泡排序(C)快速排序(D)希尔排序174.设某棵三叉树中有40个结点,则该三叉树的最小高度为(B)。(A)3(B)4(C)5(D)6175.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为(A)。(A)O(n)(B)O(n2)(C)O(n1/2)(D)O(1og2n)176.二路归并排序的时间复杂度为(C)。(A)O(n)(B)O(n2)(C)O(nlog2n)(D)O(log2n)177.深度为k的完全二叉树中最少有(B)个结点。(A)2k-1-1(B)2k-1(C)2k-1+1(D)2k-1178.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为(C)。(A)front->next=s;front=s;(B)s->next=rear;rear=s;(C)rear->next=s;rear=s;(D)s->next=front;front=s;179. 设某无向图中有 n个顶点 e条边,则建立该图邻接表的时间复杂度为 ( A )。(A)O(n+e) (B)O(n2) (C)O(ne) (D)O(n3)180. 设某哈夫曼树中有 199个结点,则该哈夫曼树中有( B )个叶子结点。(A)99 (B)100 (C)101 (D)102181. 设二叉排序树上有 n个结点,则在二叉排序树上查找结点的平均时间复杂度为( D )。(A)O(n)(B)O(n2)(C)O(nlog2n)(D)O(logn)2第 22页 共 100 页182. 设用邻接矩阵 A表示有向图 G的存储结构, 则有向图 G中顶点 i的入度为B)。第i行非0元素的个数之和(B)第i列非0元素的个数之和(C) 第i行0元素的个数之和 (D) 第i列0元素的个数之和183.设某无向图有n个顶点,则该无向图的邻接表中有(B)个表头结点。(A)2n(B)n(C)n/2(D)n(n-1)184.设无向图G中有n个顶点,则该无向图的最小生成树上有(B)条边。(A)n(B)n-1(C)2n(D)2n-1185.设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字45为基准而得到的一趟快速排序结果是(C)。(A)40,42,60,55,80,85(B)42,45,55,60,85,80(C)42,40,55,60,80,85(D)42,40,60,85,55,80186. ( B)二叉排序树可以得到一个从小到大的有序序列。先序遍历(B)中序遍历(C)后序遍历(D)层次遍历187.设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为(B)。(A)2i+1(B)2i(C)i/2(D)2i-1188.程序段s=i=0;do{i=i+1;s=s+i;}while(i<=n);的时间复杂度为(A)。(A)O(n)(B)O(nlog2n)(C)O(n2)(D)O(n3/2)189.设带有头结点的单向循环链表的头指针变量为head,则其判空条件是(C)。(A)head==0(B)head->next==0(C)head->next==head(D)head!=0190.设某棵二叉树的高度为10,则该二叉树上叶子结点最多有(C)。(A)20(B)256(C)512(D)1024191. 设一组初始记录关键字序列为 (13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字 90需要比较的关键字个数为( B )。第 23页 共 100 页(A)1(B)2(C)3(D)4192.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为(D)。(A)top=top+1;(B)top=top-1;(C)top->next=top;(D)top=top->next;193.建立一个长度为n的有序单链表的时间复杂度为(C)(A)O(n)(B)O(1)(C)O(n2)(D)O(log2n)194.设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择(B)。(A)99(B)97(C)91(D)93195.在二叉排序树中插入一个关键字值的平均时间复杂度为(B)。(A)O(n)(B)O(log2n)(C)O(log2n)(D)O(n2)196.设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为(C)。(A)A[1],A[2],A[3],A[4](B)A[1],A[14],A[7],A[4](C)A[7],A[3],A[5],A[4](D)A[7],A[5],A[3],A[4]197.设一棵完全二叉树中有65个结点,则该完全二叉树的深度为(B)。(A)8(B)7(C)6(D)5198.设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉链权中有(C)个度数为0的结点。(A)5(B)6(C)7(D)8199.设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为(A)。(A)aedfcb(B)acfebd(C)aebcfd(D)aedfbc200. 下列程序段的时间复杂度为( A )。for(i=0; i<m; i++)for(j=0 ; j<t; j++)c[i][j]=0 ;第 24页 共 100 页for(i=0 ; i<m ; i++) for(j=0 ; j<t; j++) for(k=0 ; k<n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j] ;(A)O(m*n*t) (B)O(m+n+t)(C)O(m+n*t) (D)O(m*t+n)201. 设顺序线性表中有 n个数据元素,则删除表中第 i个元素需要移动( A )个元素。(A)n-i (B)n+l-i (C)n-1-i (D)i202.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为(A)。(A)N1-1(B)N2-1(C)N2+N3(D)N1+N3203.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为(C)。(A)O(n)(B)O(nlog2n)(C)O(n2)(D)O(log2n)204.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为(D)。(A)p->right=s;s->left=p;p->right->left=s;s->right=p->right;(B)s->left=p;s->right=p->right;p->right=s;p->right->left=s;(C)p->right=s;p->right->left=s;s->left=p;s->right=p->right;(D)s->left=p;s->right=p->right;p->right->left=s;p->right=s;205.下列各种排序算法中平均时间复杂度为2D)。O(n)是(快速排序(B)堆排序(C)归并排序(D)冒泡排序206.设输入序列1、2、3、⋯、n经过栈作用后,输出序列中的第一个元素是n,则输出序列中的第i个输出元素是(C)。(A)n-i(B)n-1-i(C)n+l-i(D)不能确定207.设散列表中有m个存储单元,散列函数H(key)=key%p,则p最好选择(B)。(A)小于等于m的最大奇数(B)小于等于m的最大素数(C)小于等于m的最大偶数(D)小于等于m的最大合数第 25页 共 100 页208.设在一棵度数为3的树中,度数为3的结点数有2个,度数为2的结点数有1个,度数为1的结点数有2个,那么度数为0的结点数有(C)个。(A)4(B)5(C)6(D)7209.设完全无向图中有n个顶点,则该完全无向图中有(A)条边。(A)n(n-1)/2(B)n(n-1)(C)n(n+1)/2(D)(n-1)/2210.设顺序表的长度为n,则顺序查找的平均比较次数为(C)。(A)n(B)n/2(C)(n+1)/2(D)(n-1)/2211.设有序表中的元素为(13,18,24,35,47,50,62),则在其中利用二分法查找值为24的元素需要经过(C)次比较。(A)1(B)2(C)3(D)4212. 设顺序线性表的长度为 30,分成 5块,每块 6个元素,如果采用分块查找,则其平均查找长度为( D )。(A)6(B)11(C)5(D)6.5213.设有向无环图G中的有向边集合E={<1,2>,<2,3>,<3,4>,<1,4>},则下列属于该有向图G的一种拓扑排序序列的是(A)。(A)1,2,3,4(B)2,3,4,1(C)1,4,2,3(D)1,2,4,3214.设有一组初始记录关键字序列为(34,76,45,18,26,54,92),则由这组记录关键字生成的二叉排序树的深度为(A)。(A)4(B)5(C)6(D)7215.下列程序段的时间复杂度为(A)。i=0,s=0; while(s<n){s=s+i ;i++;}(A)O(n1/2) (B)O(n1/3) (C)O(n) (D)O(n2)216. 设某链表中最常用的操作是在链表的尾部插入或删除元素,则选用下列D)存储方式最节省运算时间。单向链表(B)单向循环链表双向链表(D)双向循环链表第 26页 共 100 页217.设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B插入结点X的操作序列为(B)。(A)s->next=p->next;p->next=-s;(B)q->next=s;s->next=p;(C)p->next=s->next;s->next=p;(D)p->next=s;s->next=q;218.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为(B)。(A)5,3,4,6,1,2(B)3,2,5,6,4,1(C)3,1,2,5,4,6(D)1,5,4,6,2,3219.设有一个10阶的下三角矩阵A(包括对角线),按照从上到下、从左到右的顺序存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则A[5][4]地址与A[0][0]的地址之差为(B)。(A)10(B)19(C)28(D)55220.设一棵m叉树中有N1个度数为1的结点,N2个度数为2的结点,⋯⋯,Nm个度数为m的结点,则该树中共有(D)个叶子结点。m m m m(i1)NiNiNi1(i1)Ni(A)i1(B)i1(C)i2(D)i2221. 二叉排序树中左子树上所有结点的值均( A)根结点的值。(A)< (B)> (C)= (D)!=222. 设一组权值集合 W=(15,3,14,2,6,9,16,17),要求根据这些权值集合构造一棵哈夫曼树,则这棵哈夫曼树的带权路径长度为( D )。(A)129 (B)219 (C)189 (D)229223. 设有 n个关键字具有相同的 Hash函数值,则用线性探测法把这 n个关键字映射到 HASH 表中需要做( D )次线性探测。(A)n2 (B)n(n+1) (C)n(n+1)/2 (D)n(n-1)/2224. 设某棵二叉树中只有度数为 0和度数为 2的结点且度数为 0的结点数为 n,则这棵二叉中共有( C)个结点。第 27页 共 100 页(A)2n (B)n+l (C)2n-1 (D)2n+l225. 设一组初始记录关键字的长度为 8,则最多经过( B)趟插入排序可以得到有序序列。(A)6 (B)7 (C)8 (D)9226.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是(D)。F,H,C,D,P,A,M,Q,R,S,Y,XP,A,C,S,Q,D,F,X,R,H,M,YA,D,C,R,F,Q,M,S,Y,P,H,XH,C,Q,P,A,M,S,R,D,F,X,Y227.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。(C)(A)688(B)678(C)692(D)696228.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(D)。(A)1,2,3(B)9,5,2,3(C)9,5,3(D)9,4,2,3229.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为(C)。(A)O(1)(B)O(n)(C)O(1og2n)(D)O(n2)230.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有(D)个。(A)1(B)2(C)3(D)4231.设有6个结点的无向图,该图至少应有(A)条边才能确保是一个连通图。(A)5(B)6(C)7(D)8232. 设哈夫曼树中的叶子结点总数为 m,若用二叉链表作为存储结构,则该哈夫曼树中总共有( B)个空指针域。第 28页 共 100 页(A)2m-1(B)2m (C)2m+1 (D)4m二、判断题1.数据项是数据的最小单位。 ( )2.链表的每个结点都恰好有一个指针。 ( )3.同一组不重复输入序列执行不同的入栈出栈组合操作,所得结果也可能相同。( )4.改进的 KMP 算法中,字符串 ‖abaaaba‖的nextval数组值是 0101110。( )5.用六叉链表表示 30个结点的六叉树,则树中共有 151个空指针。( )6.数组是一种线性结构,因此只能用来存储线性表。 ( )7.若有向图不存在回路,即使不用访问标志位同一结点也不会被访问两次。 ( )8.若装填因子 a为1,则向散列表中散列元素时一定会产生冲突。 ( )9.若把堆看成是一个完全二叉树,则该树一定是一棵排序二叉树。 ( )10.外排中使用置换选择排序的目的,是为了增加初始归并段的长度。 ( )11.抽象数据类型与计算机内部表示和实现无关。 (Y )12.线性表的插入和删除总是伴随着大量数据的移动。 ( N)13.队列在程序调用是必不可少,因此递归离不开队列。 ( N )14.字符串‘aababaaaba‘的改进函数 nextval数组值是 0020200320。(Y )15.二叉树中有双子女的父结点,在中序遍历中后继一定是其中一个子女结点。N)16.不用递归就不能实现二叉树的前序遍历。 ( N)17.若有向图有 n个顶点,则其强连通分量最多有 n个。(Y)18.平衡二叉树一定是一棵完全二叉树。 ( N )19.若某内部排序算法不稳定,则该算法没有使用价值。 ( N )第 29页 共 100 页20.倒排文件的目的是为了多关键字查找。 (Y)21.已知指针 curr指向链表中的某结点,执行语句 curr=curr->next ;不会删除该链表中的结点。 ( )22.若二叉树的叶结点数为 1,则其高度等于结点数 (仅含根结点的二叉树高度 为。()23.按中序周游二叉树时,某个结点的直接后继是它的右子树中第一个被访问 的结点。 ()24.完全二叉树的某结点若无左孩子,则它必是叶结点。 ()25.向二叉检索树中插入一个新结点,需要比较的次数不可能大于此二叉树的高度。 ()26.对一个堆按层次周游,一定能得到一个有序序列。 ()27.一棵树中的叶子结点数一定等于其对应的二叉树中的叶子结点数。 ()28.将一棵树转换为二叉树表示后,该二叉树的根结点没有右子树。 ()29.任何有向图的结点都可以排成拓扑序列,而且拓扑序列不唯一。 ()30.快速排序在最差情况下的时间复杂度是 0(n2),此时它的性能并不比冒泡排序更好。 ()31.AVL 树的任何子树都是 AVL 树。( Y)32.用相邻矩阵表示图所用的存储空间大小与图的边数成正比。 ( N)33.霍夫曼树一定是满二叉树。 ( Y)34.栈是一种线性结构。 (Y )35. B+树既适于随机检索,也适于顺序检索。 (N )36. 记录是数据处理的最小单位。 ( )37.数据的逻辑结构是指数据的各数据项之间的逻辑关系。 ( )38.算法的优劣与算法描述语言无关,但与所用计算机有关。 ( )39.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。 ( Y)第 30页 共 100 页40.算法可以用不同的语言描述,如果用 C语言或 PASCAL 语言等高级语言来描述,则算法实际上就是程序了。( )41.数据的物理结构是指数据在计算机内的实际存储形式。 ( Y)42.数据结构的抽象操作的定义与具体实现有关。 ( )43.在顺序存储结构中,有时也存储数据结构中元素之间的关系。 ( )44.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。 ( )45.数据结构的基本操作的设置的最重要的准则是, 实现应用程序与存储结构的独立。(Y )46.数据的逻辑结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加盟好项目合同范例
- 整栋楼保洁合同范例
- 简易合同范例软件
- 上海市健身会员合同范例
- 茯苓成品收购合同范例
- 设备运输供货合同范例
- wps搜索合同范例
- 2024年油田企业油泥处理绿色采购合同
- 2024年版企业常年劳务派遣协议模板版
- 2024年度智慧能源项目招标投标全程服务合同3篇
- 金融理论与政策(华南农业大学)-中国大学MOOC答案2023版
- 2024年《论教育》全文课件
- 节能改造合同协议
- 国家开放大学专科《法理学》(第三版教材)形成性考核试题及答案
- (正式版)SHT 3158-2024 石油化工管壳式余热锅炉
- 工程质量保证体系和保证措施
- 水厂管网工程施工管理工作报告doc
- 综合美食广场招商方法
- 排序算法集成-杉杉
- 产品报价审批表
- 基于s7200狭窄隧道汽车双向行的plc控制
评论
0/150
提交评论