北大秋季学期《数据结构》课程作业.docx

上传人:b****5 文档编号:4599904 上传时间:2022-12-07 格式:DOCX 页数:11 大小:72.33KB
下载 相关 举报
北大秋季学期《数据结构》课程作业.docx_第1页
第1页 / 共11页
北大秋季学期《数据结构》课程作业.docx_第2页
第2页 / 共11页
北大秋季学期《数据结构》课程作业.docx_第3页
第3页 / 共11页
北大秋季学期《数据结构》课程作业.docx_第4页
第4页 / 共11页
北大秋季学期《数据结构》课程作业.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

北大秋季学期《数据结构》课程作业.docx

《北大秋季学期《数据结构》课程作业.docx》由会员分享,可在线阅读,更多相关《北大秋季学期《数据结构》课程作业.docx(11页珍藏版)》请在冰豆网上搜索。

北大秋季学期《数据结构》课程作业.docx

北大秋季学期《数据结构》课程作业

2015年秋季学期《数据结构》课程作业

一.单选题,每空有一个正确选择,请将正确的选择填在题号前边。

(每空1分,共30分)

1.鼓励独立完成作业,严惩抄袭!

数据的逻辑结构被形式地定义为B=(K,R),其中K是____C__的有限集合,R是K上的___H___的有限集合。

(第一章)

a存储b数据操作c数据元素d操作

e逻辑结构f映象g算法h关系

2.以下关于算法的说法不正确的是____B_________。

(第一章)

a一个算法应包含有限个步骤

b算法越简单越好

c算法中的所有操作都可以通过已经实现的基本操作运算有限次实现之

d算法中的每个步骤都能在有限时间内完成

3.设某数据结构的二元组形式表示为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________。

(第一章)

a线性结构b树型结构c物理结构d图型结构

4.下面程序段的时间复杂度为___C___(第一章)

intsum=0;

for(i=0;i

for(j=i;j

s++;

a.O(m+n)b.O(n*n)c.O(m*n)d.O(m*logn)

5.下列有关线性表的叙述中,正确的是____A____。

(第二章)

a一个线性表是n个数据元素的有限序列

b线性表中任何一个元素有且仅有一个直接前驱

c线性表中任何一个元素有且仅有一个直接后继

d以上说法都不正确

6.在含有n个结点的顺序存储的线性表中,在任一位置插入一个结点所需移动结点的平均次数为___B___(第二章)

a.nb.n/2c.(n+1)/2d.(n-1)/2

7.链表不具备的特点是______D___。

(第二章)

a不必事先估计存储空间b插入删除不需要移动元素

c可顺序访问任一结点d所需空间与其长度无关

8.带附加头结点的双循环链表L为空表的条件是_______C_____。

(第二章)

aL==NULLbL->next==NULL

cL->prior==LdL->prior==NULL

9.设广义表L=((a,b,c)),则L的长度与深度分别为___D_________。

(第三章)

a1和1b1和3c2和3d1和2

10.若栈采用链式存储结构,则下面的说法中正确的是____A____(第四章)

a.不需要判断栈满但需要判断栈是否为空

b.需要判断栈是否栈空与栈满

c.需要判断栈满但不需要判断栈空

d.栈满栈空都不需要判断

11.在一个链栈中,已知s为栈顶指针(直接指向栈顶元素结点,无头结点),t为栈底指针,直接指向栈底元素,则插入r结点的操作为_____B_______。

(第四章)

at->next=r;t=r;br->next=s;s=r;

cs->next=r;s=r;dr->next=t;

12.一个栈的输入序列为1,2,3,4,5,6下面哪一个序列不可能是这个栈的输出序列___B___(第四章)

a.1,2,3,4,5,6

b.3,2,6,4,5,1

c.2,4,6,5,3,1

d.6,5,4,3,2,1

13.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是_____A_______。

(第四章)

a(rear-front+m)%mbrear-front+1

crear-front-1drear-front

14.栈和队列的共同特点是______A____。

(第四章)

a.只允许在端点处插入和删除元素b.都是先进后出

c.都是先进先出d.没有共同点

15.中缀表达式(A+B)*D+E/(F+A*D)+C的后缀形式是__D____(第四章)

a.AB+D*E/FA+*DC+b.ABD*+EFAD*+/C+

c.ABDEFADC+*+/+*+d.AB+D*EFAD*+/+C+

16.如下图所示的4棵二叉树,____C_____不是完全二叉树。

(第五章)

17.设某棵二叉树中有2000个结点,则该二叉树的最小高度为_____C_______。

(第五章)

a9b10c11d12

18.深度为6(根的层次为1)的二叉树至多有____B___结点(第五章)

a.64b.63c.31d.32

19.二叉树的第k层的结点数最多为________D____。

(第五章)

a.2k-1b.2K+1c.2K-1d.2k-1

20.如果一棵二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是____B___。

(第五章)

a空或只有一个结点b高度等于其结点数

c任一结点无右孩子d任一结点无左孩子

21.树的基本遍历策略分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。

结论_______A__是正确的。

(第五章)

a.树的先根遍历序列与其对应的二叉树的先序遍历序列相同

b.树的后根遍历序列与其对应的二叉树的先序遍历序列相同

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

d.以上都不对

22.根据使用频率为5个字符设计的哈夫曼编码不可能是______B______。

(第六章)

a111,110,10,01,00b000,001,010,011,01

c001,000,01,11,10d100,111,110,101,0

23.下列数据结构中,不属于二叉树的是______D______(第六章)

a.堆b.哈夫曼树c.线索二叉树d.B树

24.采用邻接表存储的图的广度优先遍历算法类似于二叉树的_____D_____。

(第七章)

a先序遍历b中序遍历

c后序遍历d层次遍历

25.对用邻接表表示的图进行深度优先遍历时,通常是借助___A______来实现算法。

(第七章)

a栈b队列c树d图

26.在一个图中,所有顶点的度数之和等于图的边数的____C_____倍。

(第七章)

a.1/2b.1c.2d.4

27.对线性表进行二分查找,要求线性表必须_______B_____。

(第九章)

a以顺序方式存储b以顺序方式存储,且结点按关键字有序排序

c以链接方式存储d结点按关键字有序排序,存储方式无所谓

28.排序方法中,每次从未排序序列中查找值最小的元素放到已排序序列(初始时为空)的末尾,该排序方法称为_______C_____。

(第十章)

a希尔排序b冒泡排序

c选择排序d插入排序

29.下列四种排序中,_______C_____的空间复杂度最大。

(第十章)

a.插入排序b.冒泡排序c.归并排序d.快速排序

二.填空题,请将正确答案填在____上。

(每空1分,共30分)

1.数据结构分为____逻辑结构____和物理结构两种结构。

(第一章)

2.线性结构中元素之间存在一对一关系,而树形结构中元素之间存在__一对多___关系,图形结构中元素之间存在多对多关系。

(第一章)

3.一个算法的最基本的原操作执行次数为(3n2+2nlog2n+4n-7)/(5n),则该算法的时间复杂度为____O(n)_____。

(第一章)

4.链式存储结构用一组地址任意的存储单元依次存放数据元素,数据元素之间的逻辑关系通过___指针_______间接地反映。

(第二章)

5.向一个长度为n的顺序表中的第i个元素(1≤i≤n)之前插入一个元素时,需向后移动_____N-i+1_______个元素。

(第二章)

6.当线性表的元素总数不固定,且很少随机存取表中元素,但插入和删除操作较多时,应采用_____链式_____存储结构。

(第二章)

7.在单链表中,要删除某一指定的结点,必须找到该结点的______前驱______结点。

(第二章)

8.删除单链表中结点p所指向的下一个结点(假设不为空)时,应执行q=____P->next__,p->next=__q->next____和___deleteq____的操作。

(第二章)

9.设广义表L=((a,(b,c,d))),则L的长度为_____1___,深度为_____3____。

(第三章)

10.队列的特点是先进先出,与之对应,栈的特点是___后进先出_________。

(第四章)

11.在栈顶进行插入删除一个元素的时间复杂度是___O

(1)_____。

(第四章)

12.后缀算式923+-102/-的值为__-1____。

(第四章)

13.一个环形队列中共有MaxSize个单元,那么队满时共有__MaxSize–1

____个元素。

(第四章)

14.设栈S和队列Q的初始状态为空,元素a1,a2,a3,a4,a5,a6,a7,a8依次通过栈S,一个元素出栈后立即进入队列Q,若8个元素出队列的次序是a3,a5,a4,a8,a7,a6,a2,a1,则栈S的容量至少应该是______5______。

(第四章)

15.一棵高度为6的完全二叉树至少有____32____个结点,最多有___63___个结点。

(第五章)

16.如果一个完全二叉树的叶子结点个数为n,则这棵二叉树的总结点数为__2n或2n-1___。

(第五章)

17.设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为______CABD____。

(第五章)

18.已知一个有向图的邻接矩阵表示,计算第i个结点的度的方法是__求矩形第i行非零元素之和__。

(第七章)

1、19.一个图的三种存储方法中,__________邻接矩阵,邻接表和边集数组____________表示法是不唯一的。

(第七章)

2、20.一个有n个顶点的无向连通图最少有__n-1_条边,最多___n(n-1)/2___条边。

(第七章)

21.设一个连通图G中有n个顶点e条边,则其最小生成树上有_____n-1___条边。

(第八章)

22.外排序是指在排序前后,数据在___外存____上,排序时数据调入内存进行的排序方法。

(第十章)

23.在选择排序、冒泡排序、归并排序中,_____选择____排序是不稳定的。

(第十章)

三.简答题。

(每小题4分,共40分)

1.简述顺序表和链表存储方式的特点。

(第二章)

顺序表的优点势可以随机访问数据元素;缺点是大小固定,不利于增减结点(增减操作需要移动元素)。

链表的优点是采用指针方式增减结点,非常方便(只需要改变指针指向,不移动结点)。

其缺点是不能进行随机访问,只能顺序访问;另外,每个结点上增加指针域,造成额外存储空间增大。

2.在一个单链表HL中删除指针p所指结点,应执行如下关键操作:

(第二章)

if(________)

HL=HL->next;

else

{

q=HL;

while(________)

q=q->next;

_____________;

}

deletep;

 

答案:

1、p==HL

2、q->next!

=p

3、q->next=p->next;或q->next=q->next->next;

以下2个问题基于下面的环形队列:

设环形队列Q[7]的当前状态如下,

0

1

2

3

4

5

6

a1

a2

a3

a0

front

rear

 

3.写出队列Q的队空、队满定条件及进队、出队操作的的描述语句;(第四章)

空:

rear==front

满:

(rear+1)%MaxSize==front

进队操作:

rear=(rear+1)%MaxSize;Q(rear)=x

出队操作:

front=(front+1)%MaxSize;X=Q(front)

4.画出元素a0,a1,a2出队,元素a4,a5,a6,a7进队后队列Q的状态。

(第四章)

0

1

2

3

4

5

6

a3

a4

a5

a6

a7

front

rear

 

5.写出下图这棵二叉树的前序遍历、中序遍历、后序遍历和层次遍历序列。

(第五章)

 

前序遍历:

ABDFCEGH

中序遍历:

BFDACGEH

后序遍历:

FDBGHECA

层次遍历:

ABCDEFGH

6.已知一组元素为(30,46,62,27,32,50,13,45),画出按元素排列顺序输入生成的一棵二叉搜索树,并写出在这棵二叉搜索树中查找元素50所需的元素比较次数。

(第六章)

二叉搜索树如下图,查找50所需比较次数为4.

 

7.给定权值{6,7,12,10,30,25},构造相应的哈夫曼树,要求写出构造步骤,并计算该树的带权路径长度。

(第六章)

构造的哈夫曼树为:

带权路径长度为:

(30+25)*2+(6+7+10+12)*3=215

 

8.已知一个无向图的邻接表表示为:

画出该图的图形表示,并写出在该邻接表存储结构下,以顶点v4为出发点进行深度优先遍历的遍历序列。

(第七章)

图形如下:

以v4为出发点的遍历序列为:

v4,v3,v5,v2,v1

 

9.对如下的图,用Prim算法从顶点5开始求最小生成树,写出按次序产生的边。

采用Kruscal算法产生的边次序是哪些?

画出最小生成树。

(第八章)

Prim(5,6)(4,6)(1,4)(3,4)(1,2)

Kruscal(1,4)(5,6)(3,4)(4,6)(1,2)

10.已知序列(49,38,65,97,76,13,27,49)请用插入排序写出每一趟排序的结果。

(第十章)

第一趟:

38,49,65,97,76,13,27,49

第一趟:

38,49,65,97,76,13,27,49

第一趟:

38,49,65,97,76,13,27,49

第一趟:

38,49,65,76,97,13,27,49

第一趟:

13,38,49,65,76,97,27,49

第一趟:

13,27,38,49,65,76,97,49

第一趟:

13,27,38,49,49,65,76,97

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

当前位置:首页 > 高中教育 > 高中教育

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

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