数据结构合卷.docx

上传人:b****6 文档编号:9358426 上传时间:2023-02-04 格式:DOCX 页数:19 大小:46.54KB
下载 相关 举报
数据结构合卷.docx_第1页
第1页 / 共19页
数据结构合卷.docx_第2页
第2页 / 共19页
数据结构合卷.docx_第3页
第3页 / 共19页
数据结构合卷.docx_第4页
第4页 / 共19页
数据结构合卷.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据结构合卷.docx

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

数据结构合卷.docx

数据结构合卷

一、判断题(正确在括号内填√,错误在括号内填×,每题1分,共15分)

()1.线性表采用顺序存储,必须占用一片连续的存储单元。

()2.栈和队列的共同点是只允许在端点处插入和删除元。

()3.数据结构包括数据间的逻辑结构、数据的存储方式和数据的运算三个方面。

()4.一棵哈夫曼树中不存在度为1的结点。

()5.散列法是一种对关键字进行运算的查找方法和存储方法。

()6.一个队列的入队序列是1,2,3,4,则队列的出队序列是4,3,2,1。

()7.数据元素是数据的最小单位。

()8.算法的五个特性为:

有穷性、输入、输出、完成性和确定性

()9.线性表采用链式存储结构时,其地址必须是连续的。

()10.二叉树中任何一个结点的度都是2。

()11.直接插入排序是稳定的排序。

()12.n个顶点的无向图最多有n*(n-1)条边。

()13.一个有向图的邻接矩阵一定是一个非对称矩阵。

()14.用二分查找法对一个顺序表进行查找,这个顺序表可以是按各键值排好序的,也可以是没有按键值排好序的。

()15.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为2h-1。

二、单项选择(在备选答案中选出一个正确答案,并将正确答案的序号填在题干后的括号内。

每题1分,共15分)

1.下列算法的时间复杂度为()。

x=n;//n>1

While(x>=(y+1)*(y+1))Y++;

A.O(n1/2)B.O(n2)C.O(log2n)D.O(n)

2.n个顶点的无向连通图的最小生成树包含()条边。

A.n  B.n-1  C.n/2   D.n+1。

3.深度为6(根的层次为1)的二叉树最多有()个结点。

A.64B.32C.63D.31

4.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()。

A.110B.120C.100D.108

5.在一个单链表中,若删除p所指结点的后续结点,则执行()

A.p->next=p->next->next;B.p=p->next;

C.p->next=p->next;D.p=p->next->next;

6.稀疏矩阵一般的压缩存储方法有两种,即()。

A.二维数组和三维数组B.三元组和十字链表C.散列和十字链表D.三元组和散列

7.按照二叉树的定义,具有3个结点的二叉树有()种。

A.3B.4C.5D.6

8.具有4个顶点的无向完全图有()条边。

A.6B.20C.16D.12

9.经过以下栈运算后,x的值是。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x);

A.aB.bC.1D.0

10.在一个长度为N的顺序表中,删除第i个元素,需向前移动元素的个数()。

A.N-i-1B.N-iC.N-i+1D.i

11.最大容量为n的循环队列,队尾指针是rear,队头是front,则队满的条件是()。

A.rear+1=frontB.rear=front

C.(rear+1)MODn=frontD.(rear-l)MODn=front

12.具有6个顶点的无向图至少应有()条边才能确保是一个连通图。

A.6B.7C.8D.5

13.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为()

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

14.无向图的邻接矩阵是一个()。

A.零矩阵B.对称矩阵C.上三角矩阵D.对角矩阵

15.有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用二分查找法查找键值为4的结点时,经()比较后查找成功。

A.2B.4C.3D.12

三、简答与应用题(第1题5分,2—6每题7分,共40分)

1.画出5种不同型态的二叉树。

2.对于给定的5个实数W={8,5,13,2,7},试构造Huffman树,并求出该树的最小带权路径长度WPL。

3.对下面的数据序列,写出采用冒泡排序算法排序的每一趟排序的结果。

(50,72,31,80,60,20,96,14)

4.设散列表长度为11,散列函数H(K)=K%11,采用线性探测法处理冲突,若输入序列为(100,90,120,60,78,35,42,31,15,88),要求构造出散列表。

0

1

2

3

4

5

6

7

8

9

10

 

5.已知一棵二叉树的顺序存储结构如下图所示。

(1)画出此棵二叉树。

(3分)

(2)写出该二叉树的中根遍历和后根遍历的序列。

(4分)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

A

B

F

C

G

J

D

E

H

I

K

6.已知某带权无向图,如下图所示。

(1)请用邻接矩阵法表示该图。

(3分)

(2)从顶点0出发,采用Prim算法画示最小生成树的过程。

(4分)

得分

评卷人

四、算法设计题(每题10分,共30分)

1.写出二叉树的前序遍历递归算法。

2.在带头结点单链表head中,若p结点存在,试编写删除某一结点p的算法。

3.编写直接插入排序算法。

 

一、单项选择(在备选答案中选出一个正确答案,并将其号码填在题干后的横线上。

每题2分,共20分)

1.在数据结构中,与所使用的计算机无关的是。

A.存储结构

B.物理结构

C.物理和存储结构

D.逻辑结构

2.线性表采用链式存储结构时,其地址是。

A.必须是连续的

B.一定是不连续的

C.部分地址必须是连续的

D.连续与否均可以

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

A.单链表

B.单循环链表

C.双向链表

D.双向循环链表

4.设一个栈的进栈序列是a,b,c,d,进栈的过程中可以出栈,不可能的出栈序列是A。

A.d,c,b,a

B.c,d,b,a

C.d,c,a,b

D.a,b,c,d

5.设循环队列中数组的下标是0~N-1,其头尾指针分别为f和r,则其元素个数为。

A.r–f

B.r-f-1

C.(r-f)%N+1

D.(r-f+N)%N

6.串是。

A.不少于一个字母的序列

B.任意个字母的序列

C.不少于一个字符的序列

D.有限个字符的序列

7.对稀疏矩阵采用压缩存储,其缺点之一是。

A.无法判断矩阵有多少行和多少列

B.无法根据行列号查找某个矩阵元素

C.无法根据行列号计算矩阵元素的存储地址

D.使矩阵元素之间的逻辑关系更加复杂

8.以下说法错误的是。

A.一般在哈夫曼树中,权值越大的叶子离根结点越近

B.哈夫曼树中没有度数为1的分支结点

C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树中共有2n-1个结点

D.若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下最终的哈夫曼树

9.任何一个无向连通图最小生成树。

A.只有一棵

B.有一棵或多棵

C.一定有多棵

D.可能不存在

10.只有在顺序存储结构上才能实现的查找方法是B法。

A.顺序查找

B.二分查找

C.树型查找

D.哈希查找

得分

评卷人

二、简答题(每题5分,共15分)

1.简述数据结构中算法的五种特性?

2.简述栈和队列的特点?

3.简述线性顺序存储和链式存储的区别?

 

+++++++++++++++++++++++++++++++++++++++++++++++++++

三、应用题(第1、3、4题8分,第2题5分,第5题6分,共35分)

1.设散列函数为h(key)=key%11,散列地址空间为0~10,

对关键字序列27、13、55、32、18、49、24、38、43,

利用线性探测法解决冲突,构造散列表。

2.已知某二叉树中序遍历的结果是ABC,试画出其可能的二叉树五种形态。

3.已知某带权无向图,如下图所示。

(1)请用邻接矩阵法表示该图。

(4分)

(2)从顶点0出发,采用Prim算法画示最小生成树的过程。

(4分)

4.某电文中的8个字符分别是a,b,c,d,e,f,g,h,出现的频率分别为6,15,7,9,16,27,8,12作为权值,建立哈夫曼树(5分),并求出每个字符的哈夫曼编码(3分)。

 

5.已知排序码值序列{17,18,60,40,7,32,73,65,85},排序后成后非递减序列,请写出冒泡排序每一趟的排序结果。

 

四、算法设计题(每题10分,共30分)

1.编写算法求求二叉树的深度。

 

2.编写直接插入排序算法。

 

3.设计一个算法,产生一个有5个结点的单链表,这些结点的数据域值分别是A,B,C,D,E,且表头指针是head。

一、判断题(10分)

()1.图G由两个集合V(G)和E(G)所组成,其中顶点集V(G)可以为空集,而边集E(G)不能为空。

()2.链表主要缺点是不能随机访问。

()3.栈是一种后进先出的线性表。

()4.数据结构的包括数据的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。

()5.线性表简称为“顺序表”。

()6.从循环单链表的任一结点出发,可以找到表中所有结点。

()7.深度为h的二叉树最多有2h-1个结点。

()8.散列法是一种对关键字进行运算的查找方法和存储方法。

()9.一个结点包含子树的数目,称为该结点的度。

()10.快速排序在任何情况下,都是速度最快的一种排序方法。

二、单选择题(10分)

1.下面的程序段的时间复杂度为.

inti=1;

while(i<=M)

{

for(j=1;j<=N;j++)

A[I][J]=I*J;

i++;

}

A)O(M*M)B)O(M*N)C)O(N*N)D)O(M+N)

2.对于右图二叉树,其后序序列为。

A)ABDECFGB)DBEAFCG

C)DEBFGCAD)GFCEBDA

3.如进栈序列1、2、3、4、进栈过程中可以出栈,则不可能的出栈序列为。

A)3,4,2,1B)2,4,3,1

C)1,4,2,3D)3,2,1,4

4.在一个长度为N的顺序表中,向第I个元素前插入一个新元素时,需向后移动个元素。

A)N-IB)N-I+1

C)N-I-1D)I

5.在一个单链表中,已知Q结点是P结点的前驱接点,若删除P结点,则执行。

A)Q—〉NEXT=P—〉NEXT;free(P);

B)P—〉NEXT=Q—〉NEXT;

C)Q—〉NEXT=P;free(P);

D)P—〉NEXT=Q;free(P);

三、简答题(30)

1.简述线性表的顺序存储结构的优点和缺点。

2.设散列表长度为11,散列函数H(K)=K%11,采用线性探测法处理冲突,若输入序列为(100,90,120,60,78,35,42,31,15),要求构造出散列表。

0

1

2

3

4

5

6

7

8

9

10

 

3.画出5种不同型态的二叉树。

 

4.画出下列二叉树所对应的森林。

 

5.对下面的数据序列,写出采用直接选择排序算法排序的每一趟排序的结果。

(50,72,31,80,60,20,96,14)

 

6.简述队列的特点。

 

四、应用题(20)

1.对于给定的5个实数W={8,5,13,2,7},试构造Huffman树,并求出该树的最小带权路径长度WPL。

2.给定无向网如下,写出它的邻接矩阵,并用prim算法从V0开始给出该网的最小生成树。

 

五、算法设计题(30)

1.在单链表中某一结点p前插入元素x。

 

2.写出二叉树的先序遍历递归算法。

3.写出二分查找的算法。

一、单项选择

1.在数据结构中,与所使用的计算机无关的是。

A.存储结构B.物理结构

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

2.线性表采用链式存储结构时,其地址是。

A.必须是连续的B.一定是不连续的

C.部分地址必须是连续的D.连续与否均可以

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

A.单链表B.单循环链表

C.双向链表D.双向循环链表

4.设一个栈的进栈序列是a,b,c,d,进栈的过程中可以出栈,不可能的出栈序列是A。

A.d,c,b,aB.c,d,b,a

C.d,c,a,bD.a,b,c,d

5.设循环队列中数组的下标是0~N-1,其头尾指针分别为f和r,则其元素个数为。

A.r–fB.r-f-1C.(r-f)%N+1D.(r-f+N)%N

6.串是。

A.不少于一个字母的序列B.任意个字母的序列

C.不少于一个字符的序列D.有限个字符的序列

7.对稀疏矩阵采用压缩存储,其缺点之一是。

A.无法判断矩阵有多少行和多少列

B.无法根据行列号查找某个矩阵元素

C.无法根据行列号计算矩阵元素的存储地址

D.使矩阵元素之间的逻辑关系更加复杂

8.以下说法错误的是。

A.一般在哈夫曼树中,权值越大的叶子离根结点越近

B.哈夫曼树中没有度数为1的分支结点

C.若初始森林中共有n棵二叉树,最终求得的哈夫曼树中共有2n-1个结点

D.若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下最终的哈夫曼树

9.任何一个无向连通图最小生成树。

A.只有一棵B.有一棵或多棵

C.一定有多棵D.可能不存在

10.只有在顺序存储结构上才能实现的查找方法是法。

A.顺序查找B.二分查找C.树型查找D.哈希查找

1.已知某数据的逻辑结构S=(D,R),其中D={a,b,c,d,e,f},R={〈a,b〉,〈b,c〉,〈c,d〉,〈d,e〉,〈e,f〉},请指出它们属于下面的哪种结构:

A.集合B.线性结构C.树形结构D.图形结构

2.若线性表最常用的运算是存取第i个元素及其前趋的值,则采用D存储方式节省时间。

A.单链表B.双链表C.单循环链表D.顺序表

3.单链表中,若*p结点不是末尾结点,在其后插入*s的操作是。

A.s->next=p;p->next=s;

B.s->next=p->next;p->next=s;

C.s->next=p->next;p=s;

D.p->next=s;s->next=p;

4.经过以下栈运算后,x的值是。

InitStack(s);Push(s,a);Push(s,b);Pop(s,x);GetTop(s,x);A.aB.bC.1D.0

5.最适合用作链式队列的链表是A。

A.带队首指针和队尾指针的循环单链表

B.带队首指针和队尾指针的非循环单链表

C.只带队首指针的非循环单链表

D.只带队首指针的循环单链表

6.串是一种特殊的线性表,其特殊性体现在。

A.可以顺序存储B.数据元素是一个字符

C.可以链接存储D.数据元素可以是多个字符

7.对称矩阵压缩存储是为了。

A.方便运算B.节省空间

C.提高运算速度D.以上都不是

8.高度为h的二叉树上至多有_____个结点(h≥1)。

A.2h-1B.2h-1C.2h+1D.2h

9.若图G(V,E)是具有n个顶点和e条边的有向图,若采用邻接表作为存储结构,则构建此邻接表的时间复杂度是C。

A.O(n)B.O(n+2e)无向图

C.O(n+e)D.O(n2)

10.在采用线性探测法处理冲突所构成的闭散列表上进行查找,可能要探测多个位置,在查找成功的情况下,所探测的这些位置上的键值。

A.一定都是同义词B.一定都不是同义词

C.都相同D.不一定都是同义词

二、简答题

1.简述数据结构中算法的五种特性?

2.简述栈和队列的特点?

3.简述线性顺序存储和链式存储的区别?

4.在数据结构中,我们怎样对算法进行评价的?

5.试述顺序查找、二分查找和分块查找对被查找的表中的元素有什么要求?

三、应用题

1.设散列函数为h(key)=key%11,散列地址空间为0~10,

对关键字序列27、13、55、32、18、49、24、38、43,

利用线性探测法解决冲突,构造散列表。

2.已知某二叉树中序遍历的结果是ABC,试画出其可能的二叉树五种形态。

3.已知某带权无向图,如下图所示。

(1)请用邻接矩阵法表示该图。

(2)从顶点0出发,采用Prim算法画示最小生成树的过程。

4.某电文中的8个字符分别是a,b,c,d,e,f,g,h,出现的频率分别为6,15,7,9,16,27,8,12作为权值,建立哈夫曼树(5分),并求出每个字符的哈夫曼编码。

5.已知排序码值序列{17,18,60,40,7,32,73,65,85},排序后成后非递减序列,请写出冒泡排序每一趟的排序结果。

6.已知一棵二叉树的顺序存储结构如下图所示。

(1)画出此棵二叉树。

(2)写出该二叉树的中根遍历和后根遍历的序列。

A

B

F

C

G

J

D

E

H

I

K

7.设无向图有6个结点,依次输入的9条边为(1,2),(1,3),(1,5),(1,6),(2,3),(3,4),(3,5),(4,5),(5,6)。

(1)画出无向图G

(2)画出G的邻接表

8.以关键字序列{10,2,13,15,12,14}为例,用堆排序方法进行排序。

写出每趟排序结束时,关键字序列的状态。

(请按小根堆进行排序)

9.将整数序列{4,5,7,2,1,3,6}中的数依次插入一棵空的二叉排序树中。

(1)画出相应的二叉排序树。

(6分)

(2)求等概率情况下查找成功的平均查找长度。

四、算法设计题

1.编写算法求求二叉树的深度。

intdepth(bitree*t)

{intlh,rh;

if(t==NULL)return0;

else

{

lh=depth(t->lchild);

rh=depth(t->lchild)

return((lh>rh?

lh:

rh)+1);

}

}

2.编写直接插入排序算法。

3.设计一个算法,产生一个有5个结点的单链表,这些结点的数据域值分别是A,B,C,D,E,且表头指针是head。

Typedefstructnode

{

chardata;

structnode*next;

}node;

node*create()

{

node*head,*q,*p;

Chari;

head=(node*)malloc(sizeof(node));

q=head;

for(i=’A’;i<=’E’;i++)

{

P=(node*)malloc(sizeof(node));

P->data=i;q->next=p;q=p;

}

q->next=null;

return(head);

}

4.编写算法求二叉树中叶子结点的个数。

typedefstructnode

{

datatypedata;

structnode*lchild;

structnode*rchild;

}BTNode;

intfun1(BTNode*b)

{intnum1,num2;

if(b==NULL)return0;

elseif(b->lchild==NULL&&b->rchild==NULL)

return1;

else

{num1=fun1(b->lchild);

num2=fun1(b->rchild);

return(num1+num2);

}

 

5.编写二分查找算法。

 

6.设计一个算法,将一个带头结点的数据域依次为a1,a2,……,an(n≥3)的单链表的的所有结点逆置(即第一个结点的数据域变为an,最后一个结点的数据域变为a1),生成一个新的单链表。

typedefstructLnode

{ElemTypedata;

StructLnode*next;

}LinkList;

voidReverse(LinkList*head)

{LinkList*p

p=head->next;

head->next=null;//采用前插法生成新的单链表

while(p!

=null)//扫描所有结点

{q=p->next;//q指向*p结点的下一个结点

p->next=head->next;//总是将*p作为第一个数据结点

head->next=p;

p=q;

}

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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