电大本 计算机网络形考作业4,国开网数据结构(本)形考作业4答案

本文档详细解析了数据结构课程的形考作业4,涵盖多项选择题、程序填空和综合题,涉及二分查找、顺序查找、折半查找、排序算法(如插入排序、快速排序、归并排序)、查找树(二叉排序树)以及堆排序等内容。解答详尽,适合学习者复习和理解常见数据结构操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2fde4f16ef407ba246c59c308b84faef.gif

数据结构(本)形考作业4答案.doc

(126.5 KB, 下载次数: 23, 售价: 3.00 元)

2020-10-10 21:12 上传

点击文件名下载附件

售价: 3.00 元 [记录]

下载积分: 威望 20 , 金钱 2

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

题目1

对线性表进行二分查找时,要求线性表必须(   )。

选择一项:

A. 以顺序存储方式,且数据元素有序

B. 以顺序存储方式

C. 以链接存储方式,且数据元素有序

D. 以链接存储方式

题目2

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

选择一项:

A. n/2

B. (n+1)/2

C. (n-1)/2

D. n

题目3

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

选择一项:

A. 29/10

B. 31/10

C. 26/10

D. 29/9

题目4

已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较(  )次。

选择一项:

A. 4

B. 6

C. 3

D. 5

题目5

有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是(   )。

选择一项:

A. 45,24,53,12,37,96,30

B. 30,24,12,37,45,96,53

C. 37,24,12,30,53,45,96

D. 12,24,30,37,45,53,96

题目6

对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是(   )。

选择一项:

A. 4

B. 3

C. 6

D. 5

题目7

在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是(   )。

选择一项:

A. 希尔排序

B. 直接选择排序

C. 直接插入排序

D. 冒泡排序

题目8

从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为(   )。

选择一项:

A. 插入排序

B. 选择排序

C. 交换排序

D. 归并排序

题目9

依次将每两个相邻的有序表合并成一个有序表的排序方法称为(   )。

选择一项:

A. 归并排序

B. 交换排序

C. 选择排序

D. 插入排序

题目10

当两个元素出现逆序的时候就交换位置,这种排序方法称为(   )。

选择一项:

A. 选择排序

B. 交换排序

C. 归并排序

D. 插入排序

题目11

每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为(   )。

选择一项:

A. 快速排序

B. 堆排序

C. 归并排序

D. 插入排序

题目12

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

选择一项:

A. 30,20,40,38,46,84,56,79,90,100

B. 40,20,30,38,46,56,79,84,90,110

C. 20,30 38,40,46,56,79,84,90,100

D. 20,30,40,38,46,79,56,84,90,100

题目13

在有序表{10,14,34,43,47,64,75,80,90}中,用折半查找法查找值80时,经(    )次比较后查找成功。

选择一项:

A. 2

B. 4

C. 3

D. 5

题目14

对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行(   )次元素间的比较。

选择一项:

A. 4

B. 6

C. 3

D. 5

题目15

排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为(   )排序。

选择一项:

A. 插入

B. 选择

C. 快速

D. 归并

题目16

一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序的方法建立的初始小根堆为(   )。

选择一项:

A. 18,20,25,59,26,36

B. 18,20,36,59,26,25

C. 26,18,59,20,36,25

D. 26,59,36,18,20,25

题目17

一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为(   )。

选择一项:

A. 16,25,35,48,23,40,79,82,36,72

B. 16,25,35,48,79,82,23,36,40,72

C. 16,25,48,35,79,82,23,36,40,72

D. 16,25,35,48,79,23,36,40,82,72

题目18

已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列从小到大排序,经过一趟冒泡排序后的序列为(   )。

选择一项:

A. 16,28,34,54,62,60,73,26,43,95

B. 28,16,34,54,62,60,73,26,43,95

C. 16,28,34,54,73,62,60,26,43,95

D. 28,16,34,54,62,73,60,26,43,95

题目19

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

选择一项:

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

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

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

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

题目20

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

选择一项:

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

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

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

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

二、程序填空题(每题10分,2题,共20分。请点击正确选项,然后拖拽至相应的方框上)

题目21

以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格

typedef struct  Bnode

{  int  key;

struct  Bnode *left;

struct  Bnode *right;

} Bnode;

Bnode *BSearch(Bnode  *bt, int k)

/* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/

{   Bnode *p;

if(bt==  空白 )

return (bt);

p=bt;

while(p->key!=  空白 )

{ if(kkey)

空白 ;

else  空白 ;

if(p==NULL) break;

}

return( 空白 ;

}

p=p‑>leftNULLp=p‑>right  pk

题目22

以下程序是折半插入排序的算法

设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,程序是要把a插入到已经有序的序列a[1],…a[i-1]中。

void binsort (NODE a[ ],int n)

{   int x,i,j,s,k,m;

for (i=2;i<= 空白 ;i++)

{  a[0]=a;

x= a.key;

s=1;

j=i-1;

while (s<=j)

{  m= 空白

if( x

空白

else

空白

}

for ( k=i-1;k>=j+1;k- -)

空白 =a[k];

a[j+1]=a[0];

}

}

(s+j)/2 j=m‑1a[k+1]ns=m+1

三、综合题(每小题8分,共40分)

题目23

(1)设查找表为(1,10,11,14,23,27,29,55,68) ,画出对上述查找表进行折半查找所对应的判定树,为了成功查找到元素14,需要依次与元素回答进行比较。

A. 23,10,1,14      B.23,29,27,14      C.23,10,11,14     D.23,29,55,14

(2)在等概率条件下,成功查找的平均比较次数为回答。

A.24/9            B. 25 /9           C.3              D.2.5

题目24

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

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

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

(2)输出堆顶元素后,调整后的堆为回答。

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

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

题目25

(1)对关键字序列(56,51,71,54,46,106),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为回答;

A. 46,51,56,54,71,106             B. 56,51,54,46,71,106

C. 46,51,54,56,71,106              D. 56,51,46,54,71,106

(2)一组记录的关键字序列为( 60,47,80,57, 39,41,46,30),利用归并排序的方法,经过(2,2)归并的结果序列为回答。.

A.(30, 57, 60, 80,47,39,41,46 )        B. (47, 60, 57, 80,30,39,41,46  )

C.(41, 57, 60, 80, 30,39,47,46 )       D. (47, 57, 60, 80,30,39,41,46  )

题目26

(1)对关键字序列(36,69,46,28,30,74)采用快速排序,以第一个关键字为分割元素,经过一次划分后的结果序列为回答

A.30,28,46,36,69,74        B.28,30,36,46,69,74

C. 28,30,46,36,69,74        D. 30,28,36,46,69,74

(2)用冒泡法对上述序列排序,经两趟冒泡的结果序列为回答。

A. 36,28,30,46,69,74                 B. 36,46,28,20,69,74

.C. 38,36,30,46,69,74                 D.28,36,,30,46,69,74

题目27

(1)一组记录的关键字序列为{45,40,65,43,35,95}写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为回答;

A.35 40 65 45 35 95

B.35 40 65 43 45 95

C.35 40 43 45 65 95

D.35 40 45 43 65 95

(2)对上述序列 利用直接插入排序,逐次插入过程中,共进行了回答次元素间的比较。

A. 8     B. 11    C.9     D.10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值