数据结构期末复习题.docx

上传人:b****9 文档编号:25165970 上传时间:2023-06-05 格式:DOCX 页数:29 大小:327.96KB
下载 相关 举报
数据结构期末复习题.docx_第1页
第1页 / 共29页
数据结构期末复习题.docx_第2页
第2页 / 共29页
数据结构期末复习题.docx_第3页
第3页 / 共29页
数据结构期末复习题.docx_第4页
第4页 / 共29页
数据结构期末复习题.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数据结构期末复习题.docx

《数据结构期末复习题.docx》由会员分享,可在线阅读,更多相关《数据结构期末复习题.docx(29页珍藏版)》请在冰豆网上搜索。

数据结构期末复习题.docx

数据结构期末复习题

练习题:

一、填空题

1、元素项是数据的最小单位,数据元素是讨论数据结构时涉及的最小数据单位。

2、设一棵完全二叉树具有100个结点,则此完全二叉树有49个度为2的结点。

3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的出度。

4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有12个叶子的结点。

n=n0+n1+n2+…+nm

(1)

又有除根结点外,树中其他结点都有双亲结点,且是唯一的(由树中的分支表示),所以,有双亲的结点数为:

n-1=0*n0+1*n1+2*n2+…+m*nm

(2)

联立

(1)

(2)方程组可得:

叶子数为:

n0=1+0*n1+1*n2+2*n3+...+(m-1)*nm

5、有一个长度为20的有序表采用二分查找方法进行查找,共有4个元素的查找长度为3。

6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共4个。

删除一个结点需要修改的指针共2个。

7、已知广义表LS=(a,(b,c,d),e),它的深度是2,长度是3。

8、循环队列的引入是为了克服假溢出。

9、表达式a*(b+c)-d/f的后缀表达式是abc+*df/-。

10、数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度。

11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是r->next=s;r=s;r->next=null;

12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为1,2,3,4,5,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是23,而栈顶指针值是1012_H。

设栈为顺序栈,每个元素占4个字节。

13、模式串P=‘abaabcac’的next函数值序列为01122312。

14、任意连通图的连通分量只有一个,即是自身。

15、栈的特性是先进后出。

16、串的长度是包含的元素个数。

17、如果一个有向图中没有回路,则该图的全部顶点可能排成一个拓扑序列。

18、在具有n个叶子结点的哈夫曼树中,分支结点总数为n-1。

176

19、在线性表的散列存储中,装填因子?

又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则?

等于n/m。

20、排序的主要目的是为了以后对已排序的数据元素进行查找。

21、对于一个具有n个结点的单链表,在已知的结点*p后插入一个新结点的时间复杂度为O

(1),在给定值为x的结点后插入一个新结点的时间复杂度为O(n)。

22、线性表L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均需要移动元素的个数是n/2。

23、两个栈共享空间时栈满的条件top1=top2-1。

24、深度为H的完全二叉树至少有H个结点;至多有2^H-1个结点;H和结点总数N之间的关系是H=[log2n]+1。

150

25、在有序表A[1…20]中,按二分查找方法进行查找,查找长度为4的元素的下标从小到大依次是136811131619

26、设查找表中有100个元素,如果用二分法查找方法查找数据元素X,则最多需要比较7次就可以断定数据元素X是否在查找表中。

26、数据结构被形式地定义为(D,R),其中D和R的含义是(D是数据元素的集合,R是数据关系的集合)。

数据的逻辑结构包括哪四种类型(集合类型,线性结构,树形结构,图状结构)。

从存储结构的概念上讲,顺序表是线性表的(顺序存储结构),链表是(链式存储结构)。

27、根据初始关键字序列(17,25,3,39,12)建立的二叉排序树的高度为3。

27、算法的五个重要特性有哪些。

(有穷性、确定性、可行性、输入、输出)。

抽象数据类型是指一个(数学模型)以及定义在该模型上的(一组操作)。

28、设有一个n阶的下三角矩阵A,如果按照行的顺序将下三角矩阵中的元素(包括对角上元素)存放在n(n+1)个连续的存储单元中,则A[i][j]与A[0][0]之间有((i+1)*i/2+j个数据元素。

29、栈的插入和删除只能在栈的栈顶进行,后进栈的元素必定先出栈,所以又把栈称为FILO;队列的插入和删除运算分别在队列的两端进行,先进队列的元素必定先出队列,所以又把队列称为FIFO表。

30、设一棵完全二叉树的顺序存储结构中存储数据元素为ABCDEF,则该二叉树的前序遍历序列为ABDEF,中序遍历序列为DBEAFC,后序遍历序列为DEBFCA。

31、如果以链栈为存储结构,则出栈操作时(必须判别栈是否空),与顺序栈相比,链栈有一个明显的优势是(通常不会出现栈满的情况)。

32、循环队列采用数组data[1..n]来存储元素的值,并用front和rear分别作为其头尾指针。

为区分队列的满和空,约定:

队中能够存放的元素个数最大为n-l,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front);入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。

33、设一棵完全二叉树有128个结点,则该完全二叉树的深度为8,有65个叶子结点。

33、已知栈的输入序列为1,2,3….,n,输出序列为a1,a2,…,an,a2=n的输出序列共有(n-1)种输出序列。

34、设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数之和等于顶点i的出度,第i列中所有非零元素个数之和等于顶点i的入度。

35、将下三角矩阵A[l..8,1..8]的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A[7,5]的地址为(1100)。

36、已知数组A[1..10,1..10]为对称矩阵,其中每个元素占5个单元。

现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,6]对应的地址为(1095)。

37、两个串相等的充要条件是,两个串的(长度)相等,且其所对应各个位置的(字符)也相等。

39、在有n个结点的二叉链表中,值为非空的链域的个数为(n-1)。

在有n个叶子结点的哈夫曼树中,总结点数是(2n-1)。

在树形结构中,根结点数只有

(1),其余每个结点有且仅有一个(前驱)元素结点。

40、一棵二叉树L的高度为h,所有结点的度或为0,或为2,则这棵二叉树最少的结点数为(2h-1)。

已知二叉树有50个叶子结点,则该二叉树的总结点数至少是(99)。

将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为(98)。

有64个结点的完全二叉树的深度为(7)。

41、拓扑排序只能用于(有向无环图)。

连通图是指图中任意两个顶点之间(都连通的无向图)。

一个有n个顶点的无向连通图,它所包含的连通分量个数最多为

(1)个。

任何一个无向连通图的最小生成树(有一棵或多棵)。

若含有n个顶点的图形成一个环,则它有(n)棵生成树。

42、求图的最小生成树有两种算法,(普利姆)算法适合于求稠密图的最小生成树,(克鲁斯卡尔)算法适合于求稀疏图的最小生成树。

设图G用邻接表存储,则拓扑排序的时间复杂度为(O(n+e))。

44、从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为(插入排序)。

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

33、typedefstructnode{intkey;structnode*lchild;structnode*rchild;}bitree;

bitree*bstsearch(bitree*t,intk)

{

if(t==0)return(0);elsewhile(t!

=0)

if(t->key==k)t->lchild=t->rchild=0;elseif(t->key>k)t=t->lchild;elset=t->lchild;;

}

34、下面程序段的功能是实现冒泡排序算法,请在下划线处填上正确的语句。

voidbubble(intr[n])272

{

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

{

for(exchange=0,j=0;j

if(r[j]>r[j+1]){temp=r[j+1];__r[j]=r[j+1]_;r[j]=temp;exchange=1;}

if(exchange==0)return;

}

}

35、下面程序段的功能是实现二分查找算法,请在下划线处填上正确的语句。

structrecord{intkey;intothers;};

intbisearch(structrecordr[],intk)

{

intlow=0,mid,high=n-1;

while(low<=high)

{

mid=(low+high)/2;

if(r[mid].key==k)return(mid+1);

elseif(r[mid].key

}

return(0);

}

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

151

37、设有向图G的二元组形式表示为G=(D,R),D={1,2,3,4,5},R={r},r={<1,2>,<2,4>,<4,5>,<1,3>,<3,2>,<3,5>},则给出该图的一种拓扑排序序列13245。

38、设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为4913275076386597。

39、设二叉排序树的高度为h,则在该树中查找关键字key最多需要比较h次.

二、选择题

1、从逻辑上可以把数据结构分为(C)两大类。

A.动态结构、静态结构B.顺序结构、链式结构

C.线性结构、非线性结构D.初等结构、构造型结构

2、若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为(C)(1<=i<=n+1)。

A.O(0)B.O

(1)C.O(n)D.O(n2)

3、若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是(A)。

A.iB.n-iC.n-i+1D.不确定

4、已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是(D)。

A.head(tail(tail(L)))B.tail(head(head(tail(L))))

C.head(tail(head(tail(L))))D.head(tail(head(tail(tail(L)))))

5、下列陈述中正确的是(D)。

A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分

C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分

6、设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是(A)。

173

A.m-nB.m-n-1C.n+1D.条件不足,无法确定

7、.算术表达式a+b*(c+d/e)转为后缀表达式后为(B)。

A.ab+cde/*B.abcde/+*+C.abcde/*++D.abcde*/++

8、关键路径是事件结点网络中(A)。

A.从源点到终点的最长路径B.从源点到终点的最短路径

C.最长回路D.最短回路

9、具有12个关键字的有序表,二分查找的平均查找长度(C)。

236

A.2.5B.4C.3.1D.5

10、AVL树是一种平衡的二叉排序树,树中任一结点的(B)245

A.左、右子树的高度均相同B.左、右子树高度差的绝对值不超过1

C.左子树的高度均大于右子树的高度D.左子树的高度均小于右子树的高度

11、线性表采用链接存储时,其地址(D)。

A.必须是连续的B.部分地址必须是连续的

C.一定是不连续的D.连续与否均可以

12、栈和队列是两种特殊的线性表,只能在它们的(B)处添加或删除结点。

?

 A.中间点?

B.端点?

C.随机存取点?

D.结点

13、输入序列为ABC,可以变为BAC时,经过的栈操作为(C)。

A.push,pop,push,pop,push,popB.push,push,push,pop,pop,pop

C.push,push,pop,pop,push,popD.push,pop,push,push,pop,pop

14、下面(C)不是算法所具有的特性。

A.有穷性B.确切性C.高效性?

D.可行性

15、下面关于串的的叙述中,(B)是不正确的?

A.串是字符的有限序列B.空串是由空格构成的串

C.模式匹配是串的一种重要运算

D.串既可以采用顺序存储,也可以采用链式存储

16、数组A[6][7]的每个元素占五个字节,将其按行优先次序存储在起始地址为1000的内存单元中,则元素A[3][5]的地址是(A)。

117

A.1130B.1180C.1205D.1210

17、对于一个具有n个顶点的无向图,若采用邻接矩阵存储,则该矩阵的大小是(D)。

195

A.nB.(n-1)2 C.n-1D.n2

18、若广义表A满足Head(A)=Tail(A),则A为(B)。

A.()B.(())C.((),())D.((),(),())

19、堆的形状是一棵(C)。

A.二叉排序树B.满二叉树C.完全二叉树D.判定树

20、若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是(A)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;

21、链表不具有的特点是(B)。

A.插入、删除不需要移动元素B.可随机访问任一元素

C.不必事先估计存储空间D.所需空间与线性长度成正比

22、一个栈的输入序列为12345,则下列序列中不可能是栈的输出序列的是(B)。

A.23415B.54132C.23145D.15432

23、递归过程或函数调用时,处理参数及返回地址,要用一种称为(C)的数据结构。

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

24、设给定权值总数有n个,其哈夫曼树的结点总数为(D)。

A.不确定B.2nC.2n+1D.2n-1

25、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是(C)。

课件106 107

A.快速排序B.堆排序C.归并排序D.直接插入排序

26、设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?

脚注(10)表示用10进制表示。

(C)

A.688B.678C.692D.696

27、若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(D)

A.1,2,3B.9,5,2,3

C.9,5,3D.9,4,2,3

28、设一组初始记录关键字序列(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,8

29、设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A)。

Aq=p->next;p->data=q->data;p->next=q->next;free(q);

Bq=p->next;q->data=p->data;p->next=q->next;free(q);

Cq=p->next;p->next=q->next;free(q);

Dq=p->next;p->data=q->data;free(q);

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

A.N0=N1+1B.N0=Nl+N2C.N0=N2+1D.N0=2N1+l

31、设一棵m叉树中度数为0的结点数为N0,度数为1的结点数为Nl,……,度数为m的结点数为Nm,则N0=(B)。

A.Nl+N2+……+NmB.l+N2+2N3+3N4+……+(m-1)Nm

C.N2+2N3+3N4+……+(m-1)NmD.2Nl+3N2+……+(m+1)Nm

32、设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为(A)。

A.aedfcbB.acfebdC.aebcfdD.aedfbc

26、某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是(BB)。

A.空或只有一个结点B.高度等于其结点数C.任一结点无左孩子D.任一结点无右孩子

28、下面的说法中正确的是(B)。

(1)任何一棵二叉树的叶子节点在三种遍历中的相对次序不变。

(2)按二叉树定义,具有三个节点的二叉树共有6种。

A.

(1),

(2)B.

(1)C.

(2)D.

(1),

(2)都错

29、树有先根遍历和后根遍历,树可以转化为对应的二叉树。

下面的说法正确的是(B)。

A.树的后根遍历与其对应的二叉树的后根遍历相同

B.树的后根遍历与其对应的二叉树的中根遍历相同

C.树的先根遍历与其对应的二叉树的中根遍历相同

D.以上都不对

30、.下图的邻接表中,从顶点V1出发采用深度优先搜索法遍历该图,则可能的顶点序列是(D)。

A.V1V2V3V4V5B.V1V2V3V5V4C.V1V4V3V5V2D.V1V3V4V5V2

31、以下说法不正确的是(D)。

A.无向图中的极大连通子图称为连通分量

B.连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点

C.图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点

D.有向图的遍历不可采用广度优先搜索

32、设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是(DD)。

A.8B.3C.5D.9

34、二维数组A的每个元素是由6个字符组成的串,其行下标i=0,l,…,8,列下标为j=1,2.….10。

设每个字符占一个字节,若按行先存储,元素A[8,5]的起始地址与A按列存储时起始地址相同的元素是(B)。

A.A[8,5]B.A[3,10]C.A[5,8]D.A[0,9]

35、.在n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为(B)。

A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)

37、关键路径是事件结点网络中(AA)。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径

C.最长的回路D.最短的回路

38、将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是(AA)。

A.nB.2n-1C.2nD.n-1

41、有向图G用邻接矩阵A存储,则顶点i的入度等于A中(BB)。

A.第i行1的元素之和B.第i列1的元素之和

C.第i行0的元素个数D.第i列0的元素个数

42、用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序时,序列的变化情况如下:

20,15,21,25,47,27,68,35,84

15,20,21,25,35,27,47,68,84

15,20,21,25,27,35,47,68,84

则所采用的排序方法是(DD)

A.选择排序B.希尔排序C.归并排序D.快速排序

43、设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(AA)。

(A)10,15,14,18,20,36,40,21

(B)10,15,14,18,20,40,36,21

(C)10,15,14,20,18,40,36,2l

(D)15,10,14,18,20,36,40,21

44、设有n个关键字具有相同的Hash函数值,则用线性探测法把这n个关键字映射到HASH表中需要做(D)次线性探测。

A.n2B.n(n+1)C.n(n+1)/2D.n(n-1)/2

三、判断题

1.如果两个串含有相同的字符,则这两个串相等。

( x)

2.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。

(x )

3.二叉树是度为2的树。

( x)

4.在顺序表中取出第i个元素所花费的时间与i成正比。

( x)

5.在栈满情况下不能作进栈运算,否则产生“上溢”。

 (v )

6.图G的生成树是该图的一个极小连通子图。

( v)

7.所谓数据的逻辑结构指的是数据之间的逻辑关系。

(x )数据项

8.二叉排序树的查找和折半查找的时间性能相同。

(x)

9.在执行某个排序算法过程中,出现了排序码朝着最终排序序列位置相反方向移动,则该算法是不稳定的。

( x)

10.一个有向图的邻接表和逆邻接表中表结点的个数一定相等。

(v )

11、双向链表中至多只有一个结点的后继指针为空。

(v)

12、在循环队列中,front指向队列中第一个元素的前一位置,rear指向实际的队尾元素,队列为满的条件是front=rear。

(x)

13、对链表进行插入和删除操作时,不必移动结点。

(v)

14、栈可以作为实现程序设计语言过程调用时的一种数据结构。

(v)

15、在一个有向图的拓朴序列中,若顶点a在顶点b之前,则图中必有一条弧(x)。

16、对有向图G,如果从任一顶点出发进行一次深度优先或广度优先搜索就能访问每个顶点,则该图一定是完全图。

(x)

17、“顺序查找法”是指在顺序表上进行查找的方法。

(x)

18、向二叉排序树插入一个新结点时,新结点一定成为二叉排序树的一个叶子结点。

(v)

19、二分查找要求序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1