电大数据结构本期末复习指导docWord下载.docx

上传人:b****4 文档编号:6698188 上传时间:2023-05-07 格式:DOCX 页数:34 大小:230.73KB
下载 相关 举报
电大数据结构本期末复习指导docWord下载.docx_第1页
第1页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第2页
第2页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第3页
第3页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第4页
第4页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第5页
第5页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第6页
第6页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第7页
第7页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第8页
第8页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第9页
第9页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第10页
第10页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第11页
第11页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第12页
第12页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第13页
第13页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第14页
第14页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第15页
第15页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第16页
第16页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第17页
第17页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第18页
第18页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第19页
第19页 / 共34页
电大数据结构本期末复习指导docWord下载.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电大数据结构本期末复习指导docWord下载.docx

《电大数据结构本期末复习指导docWord下载.docx》由会员分享,可在线阅读,更多相关《电大数据结构本期末复习指导docWord下载.docx(34页珍藏版)》请在冰点文库上搜索。

电大数据结构本期末复习指导docWord下载.docx

13.对n个元素进行冒泡排序,要求按升序排列,程序中设定某一趟冒泡没有出现元素交换,就结束排序过程。

对某n个元素的排序共进行了3n-6次元素间的比较就完成了排序,则()。

A.原序列是升序排列

B.原序列是降序排列

C.对序列只进行了2趟冒泡

D.对序列只进行了3趟冒泡

14.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删除的结点,应执行()。

A.x=top->

data;

top=top->

next;

B.top=top->

next;

x=top;

C.x=top;

D.x=top->

15.串函数StrCat(a,b)的功能是进行串()。

A.比较B.复制C.赋值D.连接

二、填空题(每小题2分,共24分)

1.在一个单向链表中p所指结点之后插入一个s所指的新结点,应执行s->

next=p->

next;

和______操作。

2.根据数据元素间关系的不同特性,通常可分为________、、、四类基本结构。

3.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。

(结点的指针域为next)

4.________遍历二叉排序树可得到一个有序序列。

5.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。

6.如图1所示的二叉树,其中序遍历序列为_________。

图1

7.对稀疏矩阵进行压缩存储,矩阵中每个非零元素所对应的三元组包括该元素的________、________和________三项信息。

8.有一个有序表{2,3,9,13,33,42,45,63,74,77,82,95,110},用折半查找法查找值为82的结点,经________次比较后查找成功。

9.图的深度优先搜索和广度优先搜索序列不是唯一的。

此断言是______的。

(回答正确或不正确)

10.哈希法既是一种存储方法,又是一种。

11.44.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较_________次。

12.栈和队列的操作特点分别是________和________。

三、综合题(每小题10分,共30分)

1.已知序列{11,19,5,4,7,13,2,10},

(1)试给出用归并排序法对该序列作升序排序时的每一趟的结果。

(2)对上述序列用堆排序的方法建立初始堆(要求小根堆,以二叉树描述建堆过程)。

2.设有序表为(13,19,25,36,48,51,63,84,91,116,135,200),元素的下标依次为1,2,……,12.

(1)说出有哪几个元素需要经过3次元素间的比较才能成功查到

(2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表示)

(3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到.

3.

(1)设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,构造一棵二叉排序树.

(2)说明如何通过序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果.

四、程序填空题(每空2分,共16分)

1.以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行冒泡排序,完成程序中的空格部分,其中n是元素个数,程序按升序排列。

Voidbsort(NODEa[],int)

{NODEtemp;

inti,j,flag;

for(j=1;

(1);

j++);

{flag=0;

for(i=1;

(2);

i++)

if(a[i].key>

a[i+1].key)

{flag=1;

temp=a[i];

(3);

(4);

}

if(flag==0)break;

}

程序中flag的功能是(5)

7.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域为data,其数据类型为字符型,BT指向根结点)。

VoidPostorder(structBTreeNode*BT)

{if(BT!

=NULL){

(1);

(2);

(3);

}

试题答案;

1.A2.D3.B4.B5.A6.C7.C8.B9.A10.A

11.A12.D13.D14.A15.D

1.p->

next=s;

2.集合、线性、树形、图状

3.f=f->

4.中序

5.n

6.dgbaechhif

7.行号、列号、元素值

8.4次

9.正确

10.查找方法

11.3次

12.先进后出先进先出

1.

(1)初始11,19,5,4,7,13,2,10

第一趟[11,19][4,5][7,13][2,10]

第二趟[4,5,11,19][2,7,10,,13]

第三趟[2,4,5,7,10,11,13,19]

(2)

2.

(1)13,36,63,135

(3)3次

(1)

(2)中序遍历

中序2,3,4,5,6,7,14,16,18

(1)j<

=n-1

(2)i<

=n-j

(3)a[i]=a[i+1]

(4)a[i+1]=temp

(5)当某趟冒泡中没有出现交换则已排好序,结束循环

2.

(1)Postorder(BTleft)

(2)Postorder(BTright)

(3)printf(“%c”,BTdata)

第二部分期末综合练习题

一、单项选择题(每小题2分)

1.针对线性表,在存储后如果最常用的操作是取第i个结点及其前驱,则采用()存储方式最节省时间。

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

2.带头结点的单向链表为空的判断条件是()(设头指针为head)。

A.head==NULLB.head!

=NULL

C.head->

next==headD.head->

next==NULL

3.链表所具备的特点是()。

A.可以随机访问任一结点B.占用连续的存储空间

C.插入删除元素的操作不需要移动元素结点D.可以通过下标对链表进行直接访问

4.非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。

A.p->

next==NULLB.p==NULLC.p==headD.p->

next==head

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

A.物理B.逻辑C.存储D.逻辑与物理

6.算法的时间复杂度与()有关。

A.所使用的计算机B.计算机的操作系统

C.算法本身D.数据结构

7.设有一个长度为n的顺序表,要在第i个元素之前插入一个元素(也就是插入元素作为新表的第i个元素),则移动元素个数为()。

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

8.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。

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

9.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用的语句是()。

next=qC.q->

next=NULLD.p->

next

10.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。

A.p=snextB.pnext=snext;

C.snext=pnext;

pnext=s;

D.pnext=s;

snext=pnext

11.从一个栈顶指针为top的链栈中删除一个结点时,用变量x保存被删结点的植,则执行()。

A.x=top->

top=topnext;

B.x=top->

C.top=top->

x=top->

D.top=top->

x=data;

12.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。

A.r=fnext;

B.r=rnext;

C.f=fnext;

D.f=rnext;

13.在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为()。

A.f->

f=s;

B.s->

next=r;

r=s;

C.r->

D.s->

next=f;

f=s;

14.元素1,3,5,7按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.7,5,3,1B.7,5,1,3

C.3,1,7,5D.1,3,5,7

15.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,8在一维数组B中的下标是()。

A.18B.45C.53D.58

16.在C语言中,顺序存储长度为3的字符串,需要占用()个字节。

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

17.一棵有n个结点采用链式存储的二叉树中,共有()个指针域为空。

A.nB.n+1C.n-1D.n-2

18.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为()。

A.2iB.2i-1C.2i+1D.2i+2

19.设一棵哈夫曼树共有n个叶结点,则该树有()个非叶结点。

A.nB.2nC.n-1D.n+1

20.一棵具有35个结点的完全二叉树,最后一层有()个结点。

A.4B.6C.16D.8

21.一棵完全二叉树共有5层,且第5层上有六个结点,该树共有()个结点。

A.30B.20C.21D.23

22.在一个无向图中,所有顶点的度数之和等于边数的()倍。

A.3B.2C.2.5D.1.5

23.已知如图1所示的一个图,若从顶点a出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为()。

A.abecdfB.acfebdC.aedfcbD.aebcfd

24.已知如图3所示的一个图,若从顶点V1出发,按广度优先法进行遍历,则可能得到的一种顶点序列为()。

A.V1V2V4V8V5V3V6V7B.V1V2V4V5V8V3V6V7

C.V1V2V4V8V3V5V6V7D.V1V3V6V7V2V4V5V8

图3

25.在有序表{1,3,8,13,33,42,46,63,76,78,86,97,100}中,用折半查找值86时,经()次比较后查找成功。

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

26.对二叉排序树进行()遍历,可以使遍历所得到的序列是有序序列。

A.按层次B.后序C.中序D.前序

27.有一个长度为12的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为()。

A.37/12B.39/12C.41/12D.35/12

28.设已有m个元素有序,在未排好序的序列中挑选第m+1个元素,并且只经过一次元素的交换就使第m+1个元素排序到位,该方法是()。

A.折半排序B.冒泡排序C.归并排序D.简单选择排序

29.一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为()。

A.40,38,46,79,56,84B.40,38,46,84,56,79

C.40,38,46,56,79,84D.38,40,46,56,79,84

30.一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为()。

A.39,47,46,80,41,57B.39,41,46,80,47,57

C.41,39,46,47,57,80D.39,80,46,47,41,57

二.填空题

1.把数据存储到计算机中,并具体体现数据之间的逻辑结构称为________结构。

2.算法的5个特征为_________。

3.结构中的数据元素存在的关系称为树形结构。

4.要求在n个数据元素中找其中值最大的元素,设基本操作为元素间的比较。

则比较的次数和算法的时间复杂度分别为________和________。

5.求两个n阶矩阵的乘积,算法的基本操作和时间复杂度分别为________和________。

6.在一个单向链表中p所指结点之后插入一个s所指向的结点时,应执行s->

和的操作。

7.设有一个头指针为head的单向循环链表,p指向链表中的结点,若p->

next==head,则p所指结点为。

8.在一个单向链表中,要删除p所指结点,已知q指向p所指结点的前驱结点。

则可以用操作________。

9.设有一个头指针为head的单向链表,p指向表中某一个结点,且有p->

next==NULL,通过操作________,就可使该单向链表构造成单向循环链表。

10.向一个栈顶指针为h的链栈中插入一个s所指结点时,可执行s->

next=h;

和操作。

(结点的指针域为next)

11.从一个栈顶指针为h的链栈中删除一个结点时,用x保存被删结点的值,可执行

和h=h->

(结点的指针域为next)。

12.在一个链队中,设f和r分别为队头和队尾指针,则插入s所指结点的操作为r->

和(结点的指针域为next)。

13.在一个链队中,设f和r分别为队头和队尾指针,则删除一个结点的操作为________。

14.两个串相等的充分必要条件是__________。

15.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的_______、_______和_______三项信息。

16.在二叉树的链式存储结构中,通常每个结点中设置三个域,它们是_______、、

17.一棵有2n-1个结点的二叉树,其每一个非叶结点的度数都为2,则该树共有_______个叶结点。

18.一棵二叉树中有2n-2条边(结点间的连线),其中每一个非叶结点的度数都为2,则该树共有_______个非叶结点。

19.中序遍历二叉排序树可得到一个。

20.如图1所示的二叉树,其中序遍历序列为_________。

图1

图2

21.如图1所示的二叉树,其先序遍历序列为_________。

22.如图1所示的二叉树,其后序遍历序列为_________。

23.如图2所示的二叉树,其前序遍历序列为_________。

24.哈希函数是记录关键字值与该记录存储地址之间所构造的对应关系。

25.图的深度优先搜索和广度优先搜索序列不一定是唯一的。

26.n个元素进行冒泡法排序,通常需要进行________趟冒泡,第j趟冒泡要进行______次元素间的比较。

三、综合题

1.设一组记录的关键字序列为(49,83,59,41,43,47),采用堆排序算法完成以下操作:

(要求小根堆,并画出中间过程)

(1)以二叉树描述6个元素的初始堆

(2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4个元素的堆

2.已知序列{11,19,5,4,7,13,2,10}

3.一组记录的关键字序列为(46,79,56,38,40,84)

(1)利用快速排序的方法,给出以第一个记录为基准得到的一次划分结果(给出逐次交换元素的过程,要求以升序排列)

(2)对上述序列用堆排序的方法建立大根堆,要求以二叉树逐次描述建堆过程。

4.设查找表为(7,15,21,22,40,58,68,80,88,89,120),元素的下标依次为1,2,3,……,11.

(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)

(2)说明成功查找到元素40需要经过多少次比较?

(3)求在等概率条件下,成功查找的平均比较次数?

5.设查找表为(16,15,20,53,64,7),

(1)用冒泡法对该表进行排序(要求升序排列),要求写出每一趟的排序过程,通常对n个元素进行冒泡排序要进行多少趟冒泡?

第j趟要进行多少次元素间的比较?

(2)在排序后的有序表的基础上,画出对其进行折半查找所对应的判定树.(要求以数据元素作为树结点)

(3)求在等概率条件下,对上述有序表成功查找的平均查找长度.

6.

(1)如果二叉树中任一结点的值均大于其左孩子的值、小于其右孩子的值,则该树为二叉排序树,这种说法是否正确?

若认为正确,则回答正确,若认为不正确,则举例说明。

(2)设有数据集合{40,29,7,73,101,4,55,2,81,92,39},依次取集合中各数据,构造一棵二叉排序树.

7.

(2)说明如何由序列的二叉排序树得到相应序列的排序结果,对上述二叉排序给出中序遍历的结果.

8.

(1)“一棵二叉树若它的根结点的值大于左子树所有结点的值,小于右子树所有结点的值,则该树一定是二叉排序树”。

该说法是否正确,若认为正确,则回答正确,若认为不正确则说明理由?

(2)设有查找表{7,16,4,8,20,9,6,18,5},依次取表中数据构造一棵二叉排序树.对上述二叉树给出后序遍历的结果.

9.

(1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树,给出相应权重值叶结点的哈夫曼编码。

(2)一棵哈夫曼树有n个叶结点,它一共有多少个结点?

简述理由?

10.

(1)对给定权值2,1,3,3,4,5,构造哈夫曼树。

(2)同样用上述权值构造另一棵哈夫曼树,使两棵哈夫曼树有不同的高度,并分别求两棵树的带权路径长度。

11.如图所示的二叉树

(1)给出中序遍历序列

(2)给出先序遍历序列

(3)给出后序遍历序列

四、程序填空题

1.以下冒泡法程序对存放在a[1],a[2],……,a[n]中的序列进行冒泡排序完成程序中的空格部分,其中n是元素个数,要求按升序排列。

voidbsort(NODEa[],intn)

;

;

程序中flag的功能是

2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。

NODE*create(n)

{NODE*head,*p,*q;

inti;

p=(NODE*)malloc(sizeof(NODE));

head=;

;

pnext=NULL;

/*建立头结点*/

for(i=1;

i<

=n;

i++)

{p=;

p->

data=i;

next=NULL;

q->

next=;

;

return(head);

3.以下是用头插法建立带头结点且有n个结点的单向链表的程序,要求结点中的数据域从前向后依次为n,n-1,……,1,完成程序中空格部分。

NODE*create2(n)

p->

if(i==1)

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2