数据结构题库

数据结构题库
数据结构题库

2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷)

一、应用题(3小题,共24分)

1.已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路径长度=2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为98位。

2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)=[ i/2 」(取下整数) ,其中i为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。

【解答】H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0

H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0

H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2

采用链地址法处理冲突,得到的开散列表如下:

平均查找长度=(1×7+2×4+3×1)/12=18/12

3.分析下面各程序段的时间复杂度

(1)s1(int n)

{ int p=1,s=0;

for (i=1;i<=n;i++)

{ p*=i;s+=p; }

return(s);

} ——O(n)

(2)s2(int n)

x=0;y=0;

For (k=1;k<=n;k++) x++;

For (i=1;i<=n;i++)

For (j=1;j<=n;j++)

y++; 2)

(1)(1)返回结点*p的直接前趋结点地址。

(2)交换结点*p和结点*q(p和q的值不变)。

1.对给定的一组权值W=(5,2,9,11,8,3,7),试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图所示。

W PL=2×4+3×4+5×3+7×3+8×3+9×2+11×2=120

2.已知散列函数H(k)=k mod 12,键值序列为(25, 37, 52, 43, 84, 99, 120, 15, 26, 11, 70, 82),采用链表法处理冲突,试构造散列表。

【解答】H(25)=1, H(37)=1, H(52)=4, H(43)=7, H(84)=0, H(99)=3,

H(120)=0, H(15)=3, H(26)=2, H(11)=11, H(70)=10, H(82)=10

构造的开散列表如下:

3.分析下面各程序段的时间复杂度

(1)for (i=0;i

for (j=0;j

A[i][j]

——O(n*m)

(2) s=0;

for (i=0;i

for (j=0;j

s+=B[i][j];

sum=s;

——O(n2)

(3)A=B; B=C; C=A;

——O(1)

3.设无向图G(所下图所示),要求给出从1出发对该图进行深度优先和广度优先遍历的序列。

深度:125364,广度:123456 (不唯一)

4.已知无向图G的邻接表如图所示,分别写出从顶点1出发的深度遍历和广度遍历序列。

【解答】深度优先遍历序列为:1,2,3,4,5,6

广度优先遍历序列为:1,2,4,3,5,6

二、判断正误(7小题,共14分)

1.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。(√)2.一个栈的输入序列为:A,B,C,D,可以得到输出序列:C,A,B,D。(ㄨ)

3.稀疏矩阵压缩存储后,必会失去随机存取功能。(√)

4.如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。(√)5.用邻接矩阵存储图,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关。(√)

6.向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。(ㄨ)7.逻辑结构与数据元素本身的内容和形式无关。(√)

1.对链表进行插入和删除操作时不必移动链表中结点。( √ )

3.如果两个串含有相同的字符,则说明它们相等。( ㄨ )

4.在线索二叉树中,任一结点均有指向其前趋和后继的线索。(ㄨ)

5.带权无向图的最小生成树是唯一的。(ㄨ)

6.稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。(√)7.无向图的邻接矩阵一定是对称的,有向图的邻接矩阵一定是不对称的。( ㄨ ) 8.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。(√)1.由树转化成二叉树,该二叉树的右子树不一定为空。(ㄨ)

2.稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。(√)4.分块查找的平均查找长度不仅与索引表的长度有关,而且与块的长度有关。(√)5.设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。(ㄨ)6.每种数据结构都具备三个基本操作:插入、删除和查找。(ㄨ)

1.顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。(×)

2.在线性表的链式存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。√3.链表的每个结点都恰好包含一个指针域。(×)

4.有向图的邻接表和逆邻接表中表结点的个数不一定相等。(×)

5.对连通图进行深度优先遍历可以访问到该图中的所有顶点。(√)

6.当装填因子小于1时,向散列表中存储元素时不会引起冲突。(×)

2.线性表的逻辑顺序和存储顺序总是一致的。(×)

3.非空的双向循环链表中任何结点的前驱指针均不为空。(√)

4.子串“ABC”在主串“AABCABCD”中的位置为2。(√)

5.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的,也不是树形的。(×)7.用邻接矩阵作为图的存储结构时,则其所占用的存储空间与图中顶点数无关而与图中边数有关。(×)

9.当装填因子小于1时,向散列表中存储元素时不会引起冲突。(×)

10.散列技术的查找效率主要取决于散列函数和处理冲突的方法。(×)

2.稀疏矩阵压缩存储后,必会失去随机存取功能。(√)

5.对任意一个图,从某顶点出发进行一次深度优先或广度优先遍历,可访问图的所有顶点。(ㄨ)

6.当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。(√)

7.数据的逻辑结构和数据的存储结构是相同的。(ㄨ)

8.数据的存储结构是数据的逻辑结构的存储映像。(√)

三、单项选择题(8小题,共16分)

1.下面关于线性表的叙述错误的是( D )。

A 线性表采用顺序存储必须占用一片连续的存储空间

B 线性表采用链式存储不必占用一片连续的存储空间

C 线性表采用链式存储便于插入和删除操作的实现

D 线性表采用顺序存储便于插入和删除操作的实现

2.单链表的存储密度( C )。

A.大于1 B.等于1 C.小于1 D.不能确定

3.设输入序列为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,3

4.若串S="SOFTWARE",其子串的数目最多是:( C )。

A.35 B.36 C.37 D.38

5.二叉排序树中,最小值结点的(A )。

A 左指针一定为空

B 右指针一定为空

C 左、右指针均为空

D 左、右指针均不为空

6.在散列函数H(k)= k mod m中,一般来讲,m应取(C )。

A 奇数

B 偶数

C 素数

D 充分大的数

7.用直接插入排序对下面四个序列进行由小到大排序,元素比较次数最少的是( B )。

A 94, 32, 40, 90, 80, 46, 21, 69

B 21, 32, 46, 40, 80, 69, 90, 94

C 32, 40, 21, 46, 69, 94, 90, 80

D 90, 69, 80, 46, 21, 32, 94, 40

1.使用双链表存储线性表,其优点是可以(B )。

A 提高查找速度

B 更方便数据的插入和删除

C 节约存储空间

D 很快回收存储空间

2.链表不具有的特点是(B )

A.不必事先估计存储空间

B.可随机访问任一元素

C.插入删除不需要移动元素

D.所需空间与线性表长度成正比

3.下面关于线性表的叙述错误的是( D )。

A 线性表采用顺序存储必须占用一片连续的存储空间

B 线性表采用链式存储不必占用一片连续的存储空间

C 线性表采用链式存储便于插入和删除操作的实现

D 线性表采用顺序存储便于插入和删除操作的实现

4.从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较( D )个结点。

A n

B n/2

C (n-1)/2

D (n+1)/2

5.在C或C++语言中,一个顺序栈一旦被声明,其占用空间的大小( A )。

A.已固定 B.不固定 C.可以改变 D.动态变化

6.两个字符串相等的充要条件是(C )。

A 两个字符串的长度相等

B 两个字符串中对应位置上的字符相等

C 同时具备(A)和(B)两个条件

D 以上答案都不对

8.设某二叉树中度数为0的结点数为N0,度数为1的结点数为Nl,度数为2的结点数为N2,则下列等式成立的是( C )。

A N0=N1+1

B N0=Nl+N2

C N0=N2+1

D N0=2N1+l 9.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( D )

A.e B.2e C.n2-e D.n2-2e

10.设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+N3

11.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(D )。

A 空或只有一个结点

B 高度等于其结点数

C 任一结点无左孩子

D 任一结点无右孩子

12.在堆排序和快速排序中,如果从平均情况下排序的速度最快的角度来考虑应最好选择(快速)排序,如果从节省存储空间的角度来考虑则最好选择(堆)排序。

13.设有以下四种排序方法,则( B )的空间复杂度最大。

A 冒泡排序

B 快速排序

C 堆排序

D 希尔排序

14.数据结构中,与所使用的计算机无关的是数据的(C )

A.存储结构 B.物理结构 C.逻辑结构 D.物理和存储结构

15.数据的基本单位是( B )。

A. 数据结构

B. 数据元素

C. 数据项

D. 文件

1.已知一个顺序存储的线性表,设每个结点占m个存储单元,若第一个结点的地址为B,则第i个结点的地址为( A )。

A.B+(i-1)*m B.B+i*m C.B-i*m D.B+(i+1)*m

3.若链表中最常用的操作是在最后一个结点之后插入一个结点和删除第一个结点,则采用(D )存储方法最节省时间。

A 单链表

B 带头指针的单循环链表

C 双链表

D 带尾指针的单循环链表

4.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印缓冲区,该缓冲区应该是一个( B )结构。

A 栈B队列 C 数组D线性表

5.用链接方式存储的队列,在进行插入运算时( D ).

A. 仅修改头指针

B. 头、尾指针都要修改

C. 仅修改尾指针

D.头、尾指针可能都要修改

6.以下论述正确的是( C )。

A.空串与空格串是相同的B."tel"是"Teleptone"的子串

C.空串是零个字符的串 D. 空串的长度等于1

7.对于完全二叉树中的任一结点,若其右分支下的子孙的最大层次为h,则其左分支下的子孙的最大层次为(C )。

A h

B h+1

C h或h+1

D 任意

9.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(B )个空指针域。

A 2m-1

B 2m

C 2m+1

D 4m

10.设某有向图中有n个顶点,则该有向图对应的邻接表中有( B )个表头结点。

A n-1

B n

C n+1

D 2n-1

11.二叉排序树中左子树上所有结点的值均( A )根结点的值。

A <

B >

C =

D !=

12.静态查找与动态查找的根本区别在于(B )。

A 它们的逻辑结构不一样

B 施加在其上的操作不同

C 所包含的数据元素的类型不一样

D 存储实现不一样

13.散列技术中的冲突指的是(D)。

A 两个元素具有相同的序号

B 两个元素的键值不同,而其他属性相同

C 数据元素过多

D 不同键值的元素对应于相同的存储地址

14.一组记录的关键码为{46, 79, 56, 38, 40, 84},则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(A )。

A {40, 38, 46, 56, 79, 84}

B {40, 38, 46, 79, 56, 84}

C {40, 38, 46, 84, 56, 79}

D {84, 79, 56, 46, 40, 38}

15.对一个算法的评价,不包括如下( B )方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度

1.单链表的存储密度( C )。

A.大于1 B.等于1 C.小于1 D.不能确定

2.设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( D )。

A O(log2n)

B O(1)

C O(n2)

D O(n)

3.在下列链表中不能从当前结点出发访问到其余各结点的是( C )。

A.双向链表B.单循环链表 C.单链表D.双向循环链表

4.从一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行下列( D )命令。

A.x=top;top=top->next; B.top=top->next;x=top->data;

C.x=top->data; D.x=top->data;top=top->next;

5.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为(D)。

A top=top+1;

B top=top-1;

C top->next=top;

D top=top->next;

6.字符串的长度是指( C )。

A 串中不同字符的个数

B 串中不同字母的个数

C 串中所含字符的个数

D 串中不同数字的个数

7.数组的逻辑结构不同于下列( D )的逻辑结构。

A 线性表

B 栈

C 队列

D 树

8.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是( D )。

A 空或只有一个结点

B 高度等于其结点数

C 任一结点无左孩子

D 任一结点无右孩子

10.下图为由7个顶点组成的无向图。从顶点1出发,对它进行广度优先遍历得到的顶点序列是_____C______。

A、1534267

B、1726453

C、1354276

D、1247653

11.下列各种排序算法中平均时间复杂度为O(n2)是( D )。

A 快速排序

B 堆排序

C 归并排序

D 冒泡排序

==================================================================== 2.对线性表,在下列哪种情况下应当采用链表表示?( B )

A.经常需要随机地存取元素

B.经常需要进行插入和删除操作

C.表中元素需要占据一片连续的存储空间

D.表中元素的个数不变

3.若用一个大小为6的数组来实现循环队列,且当前front和rear的值分别为3和0,当从队列中删除一个元素,再加入两个元素后,front和rear的值分别为( B )。

A.5和1 B.4和2 C.2和4 D.1和5

5.设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉链权中有( C )个度数为0的结点。

A 5

B 6

C 7

D 8

6.任何一棵二叉树的叶子结点在前序、中序、后序遍历序列中的相对次序(A)。

A 肯定不发生改变

B 肯定发生改变

C 不能确定

D 有时发生变化

7.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为( A )。

A O(n+e)

B O(n2)

C O(ne)

D O(n3)

8.下面关于工程计划的AOE网的叙述中,不正确的是(B )

A 关键活动不按期完成就会影响整个工程的完成时间

B 任何一个关键活动提前完成,那么整个工程将会提前完成

C 所有的关键活动都提前完成,那么整个工程将会提前完成

D 某些关键活动若提前完成,那么整个工程将会提前完

9.下列命题正确的是(B)。

A 一个图的邻接矩阵表示是唯一的,邻接表表示也唯一

B 一个图的邻接矩阵表示是唯一的,邻接表表示不唯一

C 一个图的邻接矩阵表示不唯一的,邻接表表示是唯一

D 一个图的邻接矩阵表示不唯一的,邻接表表示也不唯一

10.设某散列表的长度为100,散列函数H(k)=k % P,则P通常情况下最好选择( B )。

A 99

B 97

C 91

D 93

11.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是( D )。

A F,H,C,D,P,A,M,Q,R,S,Y,X

B P,A,C,S,Q,D,F,X,R,H,M,Y

C A,D,C,R,F,Q,M,S,Y,P,H,X

D H,C,Q,P,A,M,S,R,D,F,X,Y

================================================================== 1.线性表的链式链式存储结构是一种( B )的存储结构。

A、随机存取

B、顺序存取

C、索引存取

D、HASH存取

3.设计一个判别表达式中左右括号是否配对的算法,采用(B )数据结构最佳

A 顺序表

B 栈

C 队列

D 链表

4.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5、e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应该是(C)。

A 6

B 4

C 3

D 2

5.设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front值为( D )

A.front=front+1 B.front=(front+1)%(m-1)

C.front=(front-1)%m D.front=(front+1)%m

7.广义表(a, b, (c, (d)))的表尾是( D )。

A (d)

B (c,(d))

C b

D (b,(c,(d)))

9.线索二叉树中某结点R没有左孩子的充要条件是(C)。

A R.lchild=NULL

B R.ltag=0

C R.ltag=1

D R.rchild=NULL

10.设一棵完全二叉树中有65个结点,则该完全二叉树的深度为( B )。

A 8

B 7

C 6

D 5

12.G是一个非连通无向图,共有28条边,则该图至少有(D)个顶点。

A 6

B 7

C 8

D 9

14.设有6个结点的无向图,该图至少应有( A )条边才能确保是一个连通图。

A.5

B.6

C.7

D.8

15.散列表的地址区间为0-17,散列函数为H(K)=K mod 17。采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到散列表中。存放元素59需要搜索的次数是( C)

A、 2

B、 3

C、 4

D、 5

16.设有5000个元素,希望用最快的速度挑选出前10个最大的,采用( B )方法最好。A快速排序 B堆排序 C希尔排序 D 归并排序

四、算法设计题(2小题,共24分)

1.设计在顺序存储结构上实现求子串算法。

void substring(char s[ ], long start, long count, char t[ ])

{

long i,j,length=strlen(s);

if (start<1 || start>length) printf("The copy position is wrong");

else if (start+count-1>length) printf("Too characters to be copied");

else { for(i=start-1,j=0; i

t[j]=s[i]; t[j]= '\0';

}

}

2.编写算法,要求输出二叉树后序遍历序列的逆序。

void Postordern(BiTree *H)

{ if (H)

{ visit(H->data);

Postordern(H->rchild);

Postordern(H->lchild);

}

}

1.设计判断一棵二叉树是否是二叉排序树的算法。

int minnum=-32768, flag=1;

typedef struct node{

int key;

struct node *lchild,*rchild;

}bitree;

void inorder(bitree *bt)

{

if (bt!=0)

{ inorder(bt->lchild);

if(minnum>bt->key) flag=0;

minnum=bt->key;

inorder(bt->rchild);

}

}

2.设计顺序查找算法,将哨兵设在下标高端。

【解答】将哨兵设置在下标高端,表示从数组的低端开始查找,在查找不成功的情况下,算法自动在哨兵处终止。具体算法如下:

1.设计判断单链表中元素是否是递增的算法。

int isriselk(lklist *head)

{

if(head==0||head->next==0) return(1);

else

for(q=head,p=head->next; p!=0; q=p,p=p->next)

if(q->data>p->data) return(0);

return(1);

}

3.设计一个在链式存储结构上统计二叉树中结点个数的算法。

void countnode(bitree *bt,int &count)

{

if(bt!=0)

{count++; countnode(bt->lchild,count); countnode(bt->rchild,count);}

}

法。

解:

void delete(ListNode *L)

{ ListNode *p=L,*q;

if (L->next->data==X)

{ printf (“值为x的结点是第一个结点,没有直接前趋结点可以删除”);

return;

}

for (;p->next->data!=X; q=p; p=p->next); // 删除指针p所指向的结点

q->next=p->next;

delete p;

}

1.已知一个有向图的邻接表,编写算法建立其逆邻接表。

【解答】在有向图中,若邻接表中顶点vi有邻接点vj,在逆邻接表中vj一定有邻接点vi,由此得到本题算法思路:首先将逆邻接表的表头结点firstedge域置空,然后逐行将表头结点的邻接点进行转化。

五、填空题(6小题,共12分)

1.在单链表中要在已知结点*P之前插入一个新结点,需找到*P的直接前趋结点的地址,其查找的时间复杂度为(O(n) )。

2.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有(m=2e )关系。

3.顺序查找技术适合于存储结构为(顺序存储和链接存储)的线性表

4.对n个元素进行起泡排序,在(正序)情况下比较的次数最少,其比较次数为(n-1 )。

5.快速排序算法的空间复杂度平均情况下为(O(nlog2n) ),最坏的情况下为(O(n) )。

6.树形结构结构中的元素之间存在(一对多)的关系

1.在双向链表中,每个结点都有两个指针域,它们一个指向其(前趋)结点,另一个指向其(后继)结点。

2.由两个栈共享一个存储空间的好处是(节省存储空间,降低上溢发生的机率)

3.设循环队列存放在向量sq.data[0:M]中,若用牺牲一个单元的办法来区分队满和队空(设队尾指针sq.rear),则队满的条件为((sq.rear+1)%(M+1)==sq.front;)。

4.设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是(p->lchild==0&&p->rchild==0)。

5.深度为k的完全二叉树中最少有(2k-1)个结点。

6.设一棵二叉树的前序序列为ABC,则有( 5 )种不同的二叉树可以得到这种序列。

7.对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为(2n )个,其中(n-1 )个用于指向孩子,(n+1 )个指针是空闲的。

8.度不为(零)的结点称为分支结点或非终端结点。树中各结点度的(最大值)称为树的度。

9.设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的(出度),第i列上所有元素之和等于顶点i的(入度)。

10.N个顶点的强连通图的边数至少有( N )

11.数据的物理结构主要包括(顺序存储结构)和(链式存储结构)两种情况。

12.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为(n(n-1)/2)

13.算法的空间复杂度是指(执行过程中所需要的辅助存储空间)

14.顺序存储结构中数据元素之间的逻辑关系是由(存储位置)表示的,链接存储结构中的数据元素之间的逻辑关系是由(指针)表示的。

15.若算法中的语句执行次数之和为T ( n )= 525 n +4 n log n ,则算法的时间复杂度是(

O (n log n ))。

1.可由一个尾指针唯一确定的链表有()、()。

2.在有n个元素的栈中,进栈操作的时间复杂度为(O(1)),出栈操作的时间复杂度为(O(1))。

3.在串S="structure" 中,以t 为首字符的子串有( 12 )个。

4.设有一个10阶的对称矩阵A采用压缩存储,A[0][0]为第一个元素,其存储地址为d,每个元素占1个存储单元,则元素A[8][5]的存储地址为(d+41. 元素A[8][5]的前面共存储了(1+2+…+8)+5=41个元素)。

5.广义表(a,(a,b),d,e,((i,j),k))的长度是( 5 ),深度是( 3 )。

6.一棵二叉树的第i(i≥1)层最多有(2i-1)个结点;一棵有n(n>0)个结点的满二叉树共有((n+1)/2)个叶子结点和((n-1)/2)个非终端结点。

8.评价基于比较的排序算法的时间性能,主要标准是(关键码的比较次数)和(记录的移动次数)。

9.实现数据结构的基本存储方法有:(顺序存储结构),(链接存储结构)。1.循环队列的队首指针为front,队尾指针为rear,则队空的条件为(front == rear )。2.串是一种特殊的线性表,其特殊性体现在(数据元素是一个字符)。

3.已知线性表A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是( 112 )。

4.完全二叉树总结点数为N,若N为奇数,则叶子结点数为((N+1)/2 );若N为偶数,则叶子结点数为(N/2)。

5.已知一棵完全二叉树中共有768结点,则该树中共有( 384 )个叶子结点。

6.设一棵完全二叉树中有500个结点,则该二叉树的深度为( 9 );若用二叉链表作为该完全二叉树的存储结构,则共有( 501 )个空指针域。

7.对于含有n个顶点e条边的连通图,利用Prim算法求最小生成树的时间复杂度为(O(n2)),利用Kruskal算法求最小生成树的时间复杂度为(O(elog2e))。

8.若G为有向图,则至少有(0)条边,至多有(n(n-1))条边

9.表示一个有100个顶点,1000条边的有向图的邻接矩阵有(1000 )个非零矩阵元素。

10.在各种查找方法中,平均查找长度与结点个数无关的查找方法是(散列查找(哈希法))。

11.若一个算法中的语句频度之和为T(n)=3n+nlog2n+n2,则算法的时间复杂度为(O (n2))

1.对一个需要经常进行插入和删除操作的线性表,采用(链式)存储结构为宜。

2.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为(O(1))。

3.完全二叉树中第5层上最少有( 1 )个结点,最多有( 16 )个结点。

4.在一个具有n个顶点的无向完全图中,包含有(n(n-1)/2 )条边,在一个具有n 个顶点的有向完全图中,包含有(n(n-1))条边。

5.在无向图的邻接矩阵中,第i行(列)中“1”的个数是第i个顶点的度,矩阵中“1”的个数的一半是图中的边数。

7.对n个元素进行起泡排序,在(正序)情况下比较的次数最少,其比较次数为(n-1)。

9.for(i=1,t=1,s=0;i<=n;i++) {t=t*i;s=s+t;}的时间复杂度为(O(n))。

1.顺序表中访问任意一个结点的时间复杂度均为(O(1))。

6.设哈夫曼树中共有n个结点,则该哈夫曼树中有( 0 )个度数为1的结点。

8.一棵有n个结点的满二叉树有((n-1)/2 )个分支结点和((n+1)/2)个叶子。

10.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为( 13 )

11.具有n个结点的完全二叉树若按层次从上到下、从左到右对其编号(根结点为1),则编号最大的叶子结点序号是(N ),编号最小的叶子结点序号是()。

12.设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有( 129 )个结点数。

13.若G为有向图,则至少有(0 )条边,至多有(n(n-1))条边

16.假定一个数列{25,43,62,31,48,56},采用的散列函数为H(k)=k mod 7,则元素48的同义词是( 62 )。

17.对于键值序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,必须从键值为(60 )的结点开始。

六、简答题(2小题,共10分)

1.下图所示是一个无向带权图,请按Prim算法从a出发求最小生成树。

【解答】按Prim算法求最小生成树的过程如下:

2.求下列算法的时间复杂度。

count=0; x=1;

while (x {

x*=2;

count++;

}

return count;

——O(log2n)

1.已知一组记录的排序码为(46,79,56,38,40,80, 95,24),写出对其进行快速排序的前两趟的划分结果。

第一趟:[38 24 40] 46 [56 80 95 79]

第二趟:24 [38 40] 46 [56 80 95 79]

七、名词解释(1小题,共5分)

1.简述下列概念:逻辑结构、存储结构

逻辑结构:指各数据元素之间的逻辑关系。

存储结构:就是数据的逻辑结构用计算机语言的实现。

数据结构试题库答案

数据结构试题及答案 一、单项选择题 (1)一个算法应该就是()。 A)程序???B)问题求解步骤得描述 C)要满足五个基本属性??D) A与C (2)算法指得就是()。 A)计算机程序???B)解决问题得计算方法 C)排序算法???D)解决问题得有限运算序列。 (3)与数据元素本身得形式、内容、相对位置、个数无关得就是数据得()。 A) 存储结构B) 逻辑结构C)算法D)操作 (4)从逻辑上可以把数据结构分为( )两大类。 A)动态结构、静态结构??B) 顺序结构、链式结构 C)线性结构、非线性结构???D)初等结构、构造型结构 (5)下列叙述中正确得就是()。 A)一个逻辑数据结构只能有一种存储结构 B)数据得逻辑结构属于线性结构,存储结构属于非线性结构 C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理得效率 D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理得效率 (6)数据得基本单位就是() ?A) 数据项??B) 数据类型C)数据元素??D)数据变量 (7)下列程序得时间复杂度为() i=0;s=0; while(s

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

《数据结构》题库及答案

《数据结构》题库及答案 一、选择题 1.线性表的顺序存储结构是一种 的存储结构,线性表的链式存储结构是一种 的存储结构。 a. 随机存储; b.顺序存储; c. 索引存取; d. HASH 存取 2.一个栈的入栈序列是a,b,c,d,e ,则栈的不可能的输出序列是 。 a. edcba; b. decba; c. dceab; d.abcde 3.一个队列的入队序列是1,2,3,4,则队列的输出序列是 。 a. 4,3,2,1; b. 1,2,3,4; c. 1,4,3,2; d.3,2,4,1 4.在一个单链表中,已知p 结点是q 结点的直接前驱结点,若在p 和q 之间插入结点s ,则执行的操作是 。 a. s->nxet=p->next; p->next=s; b. p->next=s->next; s->next=p; c. q->next=s; s->next=p; d. p->next=s; s->next=q; 5.设有两个串p,q ,求q 在p 中首次出现的位置的运算称作 。 a.联接 b.模式匹配 c.求子串 d.求串长 6.二维数组M 的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i 的范围从0到8,列下标j 的范围从1到10,则存放M 至少需要 个字节。 a. 90 b.180 c.240 d.540 7.在线索二叉树中,结点p 没有左子树的充要条件是 。 a. p->lch==NULL b. p->ltag==1 c. p->ltag==1且p->lch=NULL d. 以上都不对 8.在栈操作中,输入序列为(A ,B ,C ,D ),不可能得到的输出序列为:______ A 、(A , B , C , D ) B 、(D ,C ,B ,A ) C 、(A ,C ,D ,B ) D 、(C ,A ,B ,D ) 9.已知某二叉树的后序序列是dabec ,中序序列是debac ,则它的先序序列是 。 A 、acbed B 、decab C 、deabc D 、cedba 10.设矩阵A 是一个对称矩阵,为了节省存储空间,将其下三角部分(见下图)按行序存放在一维数组B[1..n(n-1)/2]中,对任一上三角部分元素)(j i a ij ,在一维数组B 的存放位置是 。

数据结构考试题库

数据结构考试题库

绪论 一、填空题 1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。 2.物理结构是数据结构在计算机中的表示,又称为(存储结构)。 3.数据元素的逻辑结构包括( 线性)、(树)和图状结构3种类型,树形结构和图状结构合称为(非线性结构)。 4.(数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。 5.线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。 ?6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关系)和(运筹)等的学科。 7.算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。 二、选择题 1.数据的不可分割的基本单位是(D)。 A.元素 B.结点 C.数据类型 D.数据项 *2.线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A.正确 B.不正确 C.不确定 D.无法选择 3.线性结构是指数据元素之间存在一种(D)。 精心整理,用心做精品2

A.一对多关系 B.多对多关系 C.多对一关系 D.一对一关系 4.在数据结构中,从逻辑上可以把数据结构分成(A)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 5.线性表若采用链式存储结构时,要求内存中可用存储单元的 地址( D)。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 三、简答题 1.算法的特性是什么。 答:有穷性确定性可行性有0或多个输入有1或多个输出线性结构 一、填空题 1.在一个长度为n的线性表中删除第i个元素(1≤i≤n)时,需向前移动(n-i)个元素。 2.从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出元素)。 3.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(p->next)。 4.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把(p->next)的值赋给q->next,然后(q->date)的值赋给p->next。 5.从一个栈删除元素时,首先取出(栈顶元素),然后再使(栈顶指针)减1。 6.子串的定位操作通常称做串的(模式匹配)。 精心整理,用心做精品3

数据结构试题及答案(10套最新)

单选题(每题2分,共20分) 1. 1. 对一个算法的评价,不包括如下(B )方面的内容。 A .健壮性和可读性 B .并行性 C .正确性 D .时空复杂度 2.2. 在带有头结点的单链表HL 中,要向表头插入一个由指针 p 指向 的结点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; 都具有相同的(A )。 A.行号 B .列号 C .元素值 D .非零元素个数 9. 快速排序在最坏情况下的时间复杂度为(D )。 A. O(log 2n) B . O(nlog 2n) C . 0(n) D 10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致 为 A. O(n) B. O(1) C. O(log 2 n) D. O(n 二、 运算题(每题6分,共24分) 1. 1. 数据结构是指数据及其相互之间的 _________________ 。当结点之 间存在M 对N (M N)的联系时,称这种结构为 __________________________ 。 2. 2. 队列的插入操作是在队列的_ _尾 ________ 行,删除操作是在队 列的 ____ 首 _____ 行。 3. 3. 当用长度为N 的数组顺序存储一个栈时,假定用top==N 表示栈 C. p->next=HL; p=HL; 3. 3. A. C. D. HL=p; p-> next=HL; 对线性表,在下列哪种情况下应当采用链表表示? 经常需要随机地存取元素 B. 表中元素需要占据一片连续的存储空间 一个栈的输入序列为1 2 3, 4. 4. 列的是(C ) A. 2 3 1 C. 3 1 2 AOV 网 是一种(D ) 有向 图 B .无向图 (B ) 经常需要进行插入和删除操作 D.表中元素的个数不变 则下列序列中不可能是栈的输出序 B. 3 2 1 5. 5. 6. .无向无环图 D .有向无环图 采用 开放定址法处理散列表的冲突时,其平均查找长度( B. 高于链接法处理冲突 D .高于二分查找 7. 8. 6. A.低于链接法处理冲突 .与链接法处理冲突相同 7. 参数。 A.值 8. B)。 若需要利用形参直接访问实参时,应将形参变量说明为( B .函数 C .指针 D .引用 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点 9. .0(n 2) (C )。 2 )

数据结构期末考试试题及答案

数据结构期末考试试题及答案 、选择题 评价一个算法时间性能的主要标准是()。1. A、算法易于调试 B、算法易于理解 C、算法的稳定性和正确性 D、算法的时间复杂度 )等五个特性。计算机算法具备有输入、输出、 2. A、可行性、可移植性和可扩充性 B、可行性、确定性和有穷性 C、确定性、有穷性和稳定性 D、XX、稳定性和XX 。带头结点的单链表head为空的判定条件是()3. A、h ead==NULL B、h ead->next==NULL C、head->next==head D、head!=NULL 以下关于线性表的说法不正确的是()。4. A、线性表中的数据元素可以是数字、字符、记录等不同类型。 B、线性表中包含的数据元素个数不是任意的。

C、线性表中的每个结点都有且只有一个直接前趋和直接后继。 D、存在这 样的线性表:表中各结点都没有直接前趋和直接后继。 在顺序表中,只要知道(),就可在相同时间内求出任一结点的存储地址。 5.A、基地址 B、结点大小 C、向量大小 D、基地址和结点大小 ()运算中,使用顺序表比链表好。6. A、插入 B、删除 C、根据序号查找 D、根据元素值查找一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动()个元素7.A、n-i B、n-i+1 C、n-i-1 D、i ()适合作为经常在首尾两端操作线性表的存储结构。8. A、顺序表 B、单链表 C、循环链表 D、双向链表

栈和队列的共同点是() 9. A、都是先进后出 B、都是先进先出 C、只允许在端点处插入和删除元素 D、没有共同点 一个队列的入列序列是1234,则队列的输出序列是()。10. A 、4321 B 、12 3 4 C 、1432 D 、 3241队列与一般的线性表的区别在于()。11. A、数据元素的类型不同 B、运算是否受限制 C、数据元素的个数不同 D、逻辑结构不同 假上溢”现象会出现在()中。12. A、循环队列 B、队列 C、链队列 、顺序队列D.二、填空

数据结构题库教材

2013-2014学年二学期数据结构期末考试模拟试卷(1~6卷) 一、应用题(3小题,共24分) 1已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3 次、4次和9次,对该字符串用[0,1]进行前缀编码,问该字符串的编码至少有多少位。 【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示。其带权路 径长度=2X 5+1X 5+3X 4+5X 3+9X 2+4X 3+4X 3+7X 2=98,所以,该字符串的编码长度至少为98位。 2.已知关键码序列为(Ja n, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec), 散列表的地址空间为0~16,设散列函数为H(x)= [i/2」(取下整数),其中i为关键码 中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度。 【解答】H(Ja n)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Ju n)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2 采用链地址法处理冲突,得到的开散列表如下: 平均查找长度=(1 X 7+2X 4+3X 1)/12=18/12

3.分析下面各程序段的时间复杂度 (1)s1(int n) { int p=1,s=0; for (i=1;iv=n;i++) { p*=i;s+=p; } return(s); } ——0(n) (2)s2(int n) x=0;y=0; For (k=1;kv=n;k++) x++; For (i=1;iv=n;i++) For (j=1;jv=n;j++) y++; ——0(n) 1?下述算法的功能是什么? ListNode *Demo l(LinkList L P ListNode *p) ("L是有头结蛊的单链表 ListNodc *q=L->rLCxt P (1) V ‘V … 」(1 )返回结点*p的直接前趋结点地址。 q=q->nest; if (q) return q, else ?ro< #*p not in L"); I ⑵ i/oid Demo2(LisINode *p ,ListNode +q) 〔//p t*q*8S 表中的 两个结点 (2)交换结点*p和结点*q (p和q的值不变)。 DataTypetemp; temp=p->data, p->data=q->data; q-x^ata^emp, 1.对给定的一组权值W=( 5, 2, 9, 11, 8, 3, 7),试构造相应的哈夫曼树,并计算它的带权路径长度。【解答】构造的哈夫曼树如图所示。

算法与数据结构题库与答案

一、单项选择题 1 某算法的时间复杂度是O(n 2 ) ,表明该算法()。 A 问题规模是n2 B 问题规模与n2成正比 C 执行时间等于n2 D 执行时间与n2成正比 2、关于数据结构的描述,不正确的是()。 A数据结构相同,对应的存储结构也相同。 B数据结构涉及数据的逻辑结构、存储结构和施加其上的操作等三个方面。 C数据结构操作的实现与存储结构有关。 D定义逻辑结构时可不考虑存储结构。 3、按排序策略分来,起泡排序属于()。 A插入排序B选择排序C交换排序D归并排序 4、利用双向链表作线性表的存储结构的优点是()。 A便于进行插入和删除的操作 B 提高按关系查找数据元素的速度 C节省空间D便于销毁结构释放空间 5、一个队列的进队顺序为1,2,3,4,则该队列可能的输出序列是()。 A 1,2,3,4 B 1,3,2,4 C 1,4,2,3 D 4,3,2,1 6、 Dijkstra算法是按()方法求出图中从某顶点到其余顶点最短路径的。 A按长度递减的顺序求出图的某顶点到其余顶点的最短路径 B按长度递增的顺序求出图的某顶点到其余顶点的最短路径 C通过深度优先遍历求出图中从某顶点到其余顶点的所有路径 D通过广度优先遍历求出图的某顶点到其余顶点的最短路径 7、字符串可定义为n( n≥ 0)个字符的有限()。其中,n是字符串的长度,表明字符串中字符的个数。 A集合B数列C序列D聚合 8、在二维数组A[9][10]中,每个数组元素占用 3 个存储单元,从首地址SA 开始按行连续存放。在这种情况下,元素A[8][5]的起始地址为()。 A SA+141 B SA+144 C SA+222 D SA+255 9、已知广义表为L(A(u,v,(x,y),z),C(m,(),(k,l,n),(())),((())),(e,(f,g),h)),则它的长度是()。 A2B3C4D5 10.对于具有n(n>1)个顶点的强连通图,其有向边条数至少有_____。 A. n+1 B. n C. n-1 D. n-2 11.一个递归算法必须包括 __________ 。 A. 递归部分 B . 结束条件和递归部分 C. 迭代部分 D. 结束条件和迭代部分 12.从逻辑上看可以把数据结构分为__________两大类。 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 13、若在长度为n 的顺序表的表尾插入一个新元素的渐进时间复杂度为()。 A O(n) B O(1) C O(n 2) D O(log 2n) 14.采用顺序搜素方式搜索长度为 n 的线性表时,在等概率情况下,搜索成功时的平均搜索 长度为 __________。 A. n B. n/2 C . (n+1)/2 D. (n-1)/2 15、非空的循环单链表first的链尾结点(由p 所指向)满足()。 A p->link==NULL; B P==NULL;

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) 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) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构相关题库及答案

第三章栈和队列 一、判断题: 1、栈和队列都是限制存取点的线性结构(易) 2、栈和队列是两种重要的线性结构。(易) 3、带头结点的单链表形式的队列,头指针F指向队列的头结点,尾指针R指向队列的最后一个结点(易) 4、在对不带头结点的链队列作出队操作时,不会改变头指针的值。(易) 答案:1-4 √√×× 二、选择题: 1、一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是C____。 A、 edcba B、 decba C、 dceab D、 abcde 2、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi 为_C___。 A、 i B、 n=i C、 n-i+1 D、不确定 3、栈结构通常采用的两种存储结构是_A___。 A、顺序存储结构和链式存储结构 B、散列方式和索引方式 C、链表存储结构和数组 D、线性存储结构和非线性存储结构 4、判定一个顺序栈ST(最多元素为m0)为空的条件是_B___。A、top !=0 B、top= =0 C、top !=m0 D、top= =m0-1 5、判定一个顺序栈ST(最多元素为m0)为栈满的条件是D。A、top!=0 B、top= =0 C、top!=m0 D、top= =m0-1 6、队列操作的原则是( A ) A、先进先出 B、后进先出 C、只能进行插入 D、只能进行删 除 7、向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行__ _C_。(不带空的头结点) (易) A、HS—>next=s;9 B、s—>next= HS—>next; HS—>next=s; C、s—>next= HS; HS=s; D、s—>next= HS; HS= HS—>next

数据结构考试及答案()

数据结构考试及答案()

作者: 日期: 2

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为(C) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D) A 必须是连续的B部分地址必须是连续的 C 一定是不连续的D可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为 (D )。 An B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行(D )o A s—link = p—link ;p—link = s; B p—link = s; s—link = q; C p—link = s—link ;s—link = p; D q—link = s; s—link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用(C )方法最好。 A 起泡排序 B 堆排序C锦标赛排序 D 快速 排序 6、设有两个串t和p,求p在t中首次出现的位置的运算叫做(B )o A 求子串B模式匹配C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j] 占用3个存储字,行下标i从1到8,

列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放 该数组至少需要的存储字数是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈B队列C循环队列D优先队列 9、一个队列的进队列顺序是1,2, 3, 4 ,则出队列顺序为(C )。 10、在循环队列中用数组A[0.. m-1]存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。 A ( front - rear + 1) % m B (rear - front + 1) %m C ( front - rear + m) % m D ( rear - front + n) % m 11、一个数组元素a[i]与(A )的表示等价。 A * (a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数 A指针 B 引用C值 D 变量 13、下面程序段的时间复杂度为(C) for (i nt i=0;i

2017数据结构期末考试试题及答案

2017《数据结构》期末考试试题及答案 《数据结构》期末考试试题及答案 1 ................................................................. 2..试题 1 答案............................................................ 7..《数据结构》期末考试试题及答案 2 ................................................................. 9..试题 2 答案........................................................................ 1.. 4. 《数据结构》期末考试试题及答案 3 ............................................................... 1..6试题 3 答案........................................................................ 2.. 1.

数据结构》期末考试试题及答案 1 单选题(每题 2 分,共 20 分) 1. 栈和队列的共同特点是 ( )。 A. 只允许在端点处插入和删除元素 B. 都是先进后出 C. 都是先进先出 D. 没有共同点 2. 用链接方式存储的队列,在进行插入运算时 ( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅修改尾指针 D .头、尾指针可能都要修改 3. 以下数据结构中哪一个是非线性结构? ( ) A. 队列 B. 栈 C. 线性表 D. 二叉树 4. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(io ), A[2][2]存放 若有18个元素的有序表存放在一维数组 A[19]中,第一个元素放A[1]中, 现进行二分查找,则查找 A [3]的比较序列的下标依次为( A. 1 , 2, 3 B. 9, 5, 2, 3 C. 9, 5, 3 D. 9, 4, 2, 3 8. 对n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. O (1) B. O (n ) C. O ( 1 og 2n ) D. O (n2) 9. 对于线性表( 7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选 用 H (K )=K %9 作为散列函数,则散列地址为 1 的元素有( )个, 位置在 676(10),每个元素占一个空间, 表示用 10 进制表示。 问 A[3][3] (10)存放在什么位置?脚注 (10) 5. A .688 B .678 C . 692 D . 696 树最适合用来表示 ( )。 A.有序数据元素 B.无序数据元素 6. C.元素之间具有分支层次关系的数据 D .元素之间无联系的数据 二叉树的第 k 层的结点数最多为 ( ). A .2-1 B.2K+1 C.2K-1 D. 2k-1 7.

数据结构试题及答案(10套最新)

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行(A )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种(D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为(D )参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的( A )。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为(D )。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的_ _尾______进行,删除操作是在队列的____ 首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为_________,在表尾插入元素的时间复杂度为____________。

2015年数据结构期末考试题及答案

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构期末考试试题及答案

贵州大学理学院数学系信息与计算科学专业 《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 一、单项选择题 1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。 (A)、正确性(B). 可行性(C). 健壮性(D). 输入性 2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。 for(i=n-1;i>=0;i--) for(j=0;jnext; p->next= Q.rear->next; (D)、p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于() (A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和 (C)、各叶子结点的带权路径长度之和(D)、根结点的值 10.线索二叉链表是利用()域存储后继结点的地址。 (A)、lchild (B)、data (C)、rchild (D)、root 二、填空题

数据结构题库汇总

数据结构习题 习题一 一、选择题 1、算法分析的两个主要方面是:() A.正确性和简明性B.时间复杂度和空间复杂度 C.数据复杂性和程序复杂性D.可读性和文档性 2、在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.逻辑结构和存储结构 3、计算机算法具备输入、输出和()等5个特性: A.有穷性、确定性和稳定性B.可行性、可移植性和可扩充性 C.有穷性、确定性和可行性D.易读性、稳定性和安全性 4、算法分析的目的是()。 A.找出算法的合理性 B.研究算法的输人与输出关系 C.分析算法的有效性以求改进 D.分析算法的易懂性 二、填空题 1、数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和运算等的学科。 2、线性结构中元素之间存在的关系,树形结构中元素之间存在的关系, 图形结构中元素之间存在的关系。 3、________是数据不可分割的最小单元,是具有独立含义的最小标识单位。例如构成一个数据元素的字段、域、属性等都可称之为________。 4、数据的________指数据元素及其关系在计算机存储器内的表示。_________是逻辑结构在计算机里的实现,也称之为映像。 5、所谓算法(Algorithm)是对特定问题求解方法和步骤的一种描述,它是指令的一组__________,其中每个指令表示一个或多个操作。 三、问答题 1、用大O形式写出下面算法的时间复杂度: i=0; s=0; while(s<n) { i++; s+=i; } 2、写出以下算法的时间复杂度: for(i=0; i<m; i++) for(j=0 ; j<t; j++) c[i][j]=0; for(i=0;i<m;i++) for(j=o; j

数据结构考试试题库含答案解析

数据结构习题集含答案 目录 目录 (1) 选择题 (2) 第一章绪论 (2) 第二章线性表 (4) 第三章栈和队列 (6) 第四章串 (7) 第五章数组和广义表 (8) 第六章树和二叉树 (8) 第七章图 (11) 第八章查找 (13) 第九章排序 (14) 简答题 (19) 第一章绪论 (19) 第二章线性表 (24) 第三章栈和队列 (26) 第四章串 (28) 第五章数组和广义表 (29) 第六章树和二叉树 (31) 第七章图 (36) 第八章查找 (38) 第九章排序 (39) 编程题 (41) 第一章绪论 (41) 第二章线性表 (41) 第三章栈和队列 (52) 第四章串 (52) 第五章数组和广义表 (52) 第六章树和二叉树 (52) 第七章图 (52) 第八章查找 (52) 第九章排序 (57)

选择题 第一章绪论 1.数据结构这门学科是针对什么问题而产生的?(A ) A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题 C、数值计算与非数值计算的问题都针对 D、两者都不针对 2.数据结构这门学科的研究内容下面选项最准确的是(D ) A、研究数据对象和数据之间的关系 B、研究数据对象 C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作 3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90 分,那么下面关于数据对象、数据元素、数据项描述正确的是(C ) A、某班级的学生成绩表是数据元素,90分是数据项 B、某班级的学生成绩表是数据对象,90分是数据元素 C、某班级的学生成绩表是数据对象,90分是数据项 D、某班级的学生成绩表是数据元素,90分是数据元素 4.*数据结构是指(A )。 A、数据元素的组织形式 B、数据类型 C、数据存储结构 D、数据定义 5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。 A、存储结构 B、逻辑结构 C、链式存储结构 D、顺序存储结构 6.算法分析的目的是(C ) A、找出数据的合理性 B、研究算法中的输入和输出关系

数据结构考试题库

绪论 一、填空题 1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。 2. 物理结构是数据结构在计算机中的表示,又称为(存储结构)。 3. 数据元素的逻辑结构包括(线性)、(树)和图状结构3 种类型,树形结构和图状结构合称为(非线性结构)。 4. (数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。 5. 线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。 ? 6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关 系)和(运筹)等的学科。 7. 算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。 二、选择题 1. 数据的不可分割的基本单位是(D)。 A.元素 B.结点C数据类型D.数据项 *2. 线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A.正确 B.不正确C不确定 D.无法选择 3. 线性结构是指数据元素之间存在一种(D)。 A.一对多关系 B.多对多关系C多对一关系D.—对一关系

4. 在数据结构中,从逻辑上可以把数据结构分成(A)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C线性结构和非线性结构D.内部结构和外部结构 5. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址(D)。 A.必须是连续的 B.部分地址必须是连续的 C. 一定是不连续的 D.连续不连续都可以 三、简答题 1. 算法的特性是什么。 答:有穷性确定性可行性有0 或多个输入有 1 或多个输出 线性结构 一、填空题 1?在一个长度为n的线性表中删除第i个元素(1< i产时,需向前移动(n-i)个元素。 2. 从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出元素)。 3?在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(p-> next)。 4. 在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把(p->next)的值赋给q->next,然后(q->date)的值赋给p->next。 5. 从一个栈删除元素时,首先取出(栈顶元素),然后再使(栈顶指针)减1。 6. 子串的定位操作通常称做串的(模式匹配)。 7. 设目标T= ‘ abccdcdccba,模式P= ‘ cdc则第(六)次匹配成功。。 8. 顺序栈S 中,出栈操作时要执行的语句序列中有S->top(--);进栈操作时要执行的语句序列中有S->top(++)。

相关文档
最新文档