请选择 进入手机版 | 继续访问电脑版
查看: 7785|回复: 0

国开网数据结构(本)形考作业4答案

[复制链接]

7829

主题

7836

帖子

19万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
196378
发表于 2020-10-10 21:12:59 | 显示全部楼层 |阅读模式
数据结构(本)形考作业4答案.doc (126.5 KB, 下载次数: 28, 售价: 3.00 元)

一、单项选择题(每小题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,7956384084,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(  )。
选择一项:
A. 30,20,403846845679,90,100
B. 4020,30,3846567984,90,110
C. 20,30 384046567984,90,100
D. 20,30,403846795684,90,100
题目13
在有序表{10,1434434764758090}中,用折半查找法查找值80时,经(    )次比较后查找成功。
选择一项:
A. 2
B. 4
C. 3
D. 5
题目14
对序列(4938659776134750)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行(   )次元素间的比较。
选择一项:
A. 4
B. 6
C. 3
D. 5
题目15
排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为(   )排序。
选择一项:
A. 插入
B. 选择
C. 快速
D. 归并
题目16
一组记录的关键字序列为(265936182025),利用堆排序的方法建立的初始小根堆为(   )。
选择一项:
A. 182025592636
B. 182036592625
C. 261859203625
D. 265936182025
题目17
一组记录的关键字序列为(25481635798223403672),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为(   )。
选择一项:
A. 16253548234079823672
B. 16253548798223364072
C. 16254835798223364072
D. 16253548792336408272
题目18
已知10个数据元素为(54281634736295602643),对该数列从小到大排序,经过一趟冒泡排序后的序列为(   )。
选择一项:
A. 16283454626073264395
B. 28163454626073264395
C. 16283454736260264395
D. 28163454627360264395
题目19
一组记录的关键字序列为(467956384084),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(   )。
选择一项:
A. 403846567984
B. 384046567984
C. 403846845679
D. 403846795684
题目20
一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为(      )。
选择一项:
A. 394641578047
B. 394746804157
C. 413946475780
D. 398046474157
二、程序填空题(每题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(k<p->key)      
                   空白 ;
                 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=2i<= 空白 ;i++
      {  a[0]=a;
         x= a.key;
         s=1;
         j=i-1;
         while (s<=j)
         {  m= 空白
            if( x<a[m].key)
                 空白
            else
                 空白
          }
         for ( k=i-1;k>=j+1;k- -)
            空白 =a[k];
       a[j+1]=a[0];
      }
    }
   
(s+j)/2 j=m1a[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)一组记录的关键字序列为(478057394146),利用堆排序的方法建立的初始堆为回答(堆顶元素是最小元素,采用树的形式建堆)。
   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,478057 394146,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.302846366974        B.283036466974
                C. 283046366974        D. 302836466974
    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)一组记录的关键字序列为{454065433595}写出利用快速排序的方法,以第一个记录为基准得到的一趟划分的结果为回答;
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



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
 
代做客服
更新报错
下载问题
充值问题
交流合作
作业代做一群:
河南电大教学考代做
作业代做二群:
电大题库吧代做二群
工作时间:
0:00-24:00
官方微信扫一扫
快速回复 返回顶部 返回列表