欢迎光临
奥鹏作业辅导

[奥鹏]国开电大数据结构(本)形考任务1-4[正确答案]

来源:奥鹏远程教育   日期: 作者:奥鹏作业辅导

[奥鹏]国开电大数据结构(本)形考任务1-4[正确答案]

国开电大数据结构(本)形考任务1-4[正确答案]单选题答案

 形考作业1-阶段性学习测验1
题目1:把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(   )。
逻辑结构
算法的具体实现
给相关变量分配存储单元
物理结构
题目2:下列说法中,不正确的是(   )。
数据元素是数据的基本单位
数据项可由若干个数据元素构成
数据项是数据中不可分割的最小可标识单位
数据可有若干个数据元素构成
题目3:一个存储结点存储一个(   )。
数据类型
数据元素
数据结构
数据项
题目4:数据结构中,与所使用的计算机无关的是数据的(   )。
物理结构
逻辑结构
存储结构
物理和存储结构
题目5:在线性表的顺序结构中,以下说法正确的是(       )。
数据元素是不能随机访问的
逻辑上相邻的元素在物理位置上也相邻
进行数据元素的插入、删除效率较高
逻辑上相邻的元素在物理位置上不一定相邻
题目6:对链表, 以下叙述中正确的是(     )。
插入删除元素的操作一定要要移动结点
不能随机访问任一结点
可以通过下标对链表进行直接访问
结点占用的存储空间是连续的
题目7:下列的叙述中,不属于算法特性的是(      )。
输入性
可读性
可行性
有穷性
题目8:算法的时间复杂度与(   )有关。
数据结构
计算机的操作系统
所使用的计算机
算法本身
题目9:设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为(   )。
n-i+1
n-i-1
i
n-i
题目10:设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为(   )。
n-i-1
n-i
i
n-i+1
题目11:在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句(   )。
p->next=q->next
q->next=NULL
p->next=q
p=q->next
题目12:在一个单链表中p所指结点之后插入一个s所指的结点时,可执行(   )。
s->next=p->next p->next=s
p->next=s->next
p->next= s s->next= p->next
p=s->next
题目13:非空的单向循环链表的尾结点满足(   )(设头指针为head,指针p指向尾结点)。
p== head
p->next==NULL
p->next==head
p==NULL
题目14:链表不具有的特点是(   )。
插入删除不需要移动元素
不必事先估计存储空间
逻辑上相邻的元素在物理位置上不一定相邻
可随机访问任一元素
题目15:带头结点的链表为空的判断条件是(   )(设头指针为head)。
head->next==head
head->next==NULL
head!=NULL
head ==NULL
题目16:在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为(   )。
19
21
25
20
题目17:有关线性表的正确说法是(   )。
除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继
每个元素都有一个直接前驱和一个直接后继
表中的元素必须按由小到大或由大到下排序
线性表至少要求一个元素
题目18:向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动(   )个元素。
63
8
7
63.5
题目19:一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是(   )。
98
100
106
102
题目20:    在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next和(     )。
  q=p
q->next=p
p=q->next
p->next=q
题目21:数据元素可以有一个或多个数据项组成。
题目22:数据元素之间的抽象关系称为物理结构。
题目23:数据的逻辑结构在计算机中的表示称为逻辑结构。
题目24:数据的逻辑结构是与存储该结构的计算机相关的。
题目25:数据结构中,元素之间存在多对多的关系称为树状结构。
题目26:通常可以把一本含有不同章节的书的目录结构抽象成线性结构。
题目27:通常可以把某城市中各公交站点间的线路图抽象成树型结构。
题目28:    设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句p=p->next。
题目29:    设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句p->next=head 。
题目30:   设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式p->next==head的结果为真,则p所指结点为尾结点。
题目31:    要在一个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行 p->next=s  s->next= p->next;的操作。
题目32:    要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行q->next= p->next;
题目33:    要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head-> next p->next=head;。
题目34:    设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作p->next=head;。
题目35:    设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data,完成程序中空格部分。
#define NULL 0
void main( )
{ NODE  *head ,*p
p=head    /*p为工作指针*/
do
{printf(“%d ”, [[1]]
[[2]]
}while[[3]]
}
[[1]] -> {p->data / p=p->next / p!=NULL}
题目36:    设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中结点a, (设链表中没有结点的数据域与结点a的数据域相同),写出相关语句
(1)使该单向链表成为单向循环链表
(2)插入结点s,使它成为a结点的直接前驱
q=p x=p->data
while [[3]])q=q->next
q->next=head
q=p p=p->next
while(p->data!=x)
{ q=p
[[1]]
}
s->next=p
[[2]]
[[1]] -> {p=p->next / q->next=s / q->next!=NULL}
形考作业2-阶段性学习测验2
题目1:若让元素1,2,3依次进栈,则出栈顺序不可能为(   )。
3,2,1
3,1,2
1,3,2
2,1,3
题目2:一个队列的入队序列是1,2,3,4。则队列的输出序列是(   )。
1,2,3,4
1,4,3,2
4,3,2,1
3,2,4,1
题目3:向顺序栈中压入新元素时,应当(   )。
先移动栈顶指针,再存入元素
先后次序无关紧要
先存入元素,再移动栈顶指针
同时进行
题目4:在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行(   )。
p->next=top->nexttop->next=p
p->next=toptop=p
top->next=p
p->next=top->nexttop=top->next
题目5:在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行(   )。
x=toptop=top->next
x=top->data
x=top->datatop=top->next
top=top->nextx=top->data
题目6:判断一个顺序队列(最多元素为m)为空的条件是(   )。
rear==m-1
front==rear+1
rear=m
front==rear
题目7:判断一个循环队列为满的条件是(   )。
front==rear+1
rear=MaxSize
(rear+1)%MaxSize==front
rear%MaxSize= =front
题目8:判断栈满(元素个数最多n个)的条件是(   )。
top==n-1
top!=0
top=-1
top==0
题目9:设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始), 则矩阵元素a6,2在一维数组B中的下标是(   )。
21
17
23
28
题目10:在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个(   )结构。
线性表
队列
数组
堆栈
题目11:一个递归算法必须包括(   )。
迭代部分
终止条件和迭代部分
递归部分
终止条件和递归部分
题目12:在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为(   )。
r=r->next
f=f->next
f=r->next
r=f->next
题目13:在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为(   )。
f->next=sf=s
r->next=sr=s
s->next=ff=s
s->next=rr=s
题目14:数组a经初始化char a[ ]=“English”a[7]中存放的是(   )。
字符串的结束符
变量h
h
字符h
题目15:设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是(   )。
Bcd
Abc
BCd
ABC
题目16:字符串 a1=AEIJING,a2=AEI,a3=AEFANG,a4=AEFI中最大的是(   )。
a2
a1
a4
a3
题目17:两个字符串相等的条件是(   )。
两串的长度相等,并且两串包含的字符相同
两串的长度相等,并且对应位置上的字符相同
两串包含的字符相同
两串的长度相等
题目18:一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是(   )。
28
64
90
70
题目19:一个非空广义表的表头(   )。
只能是原子
不可能是原子
可以是子表或原子
只能是子表
题目20:对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有(   )个零元素。
10
72
74
8
题目21:对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是(   )。
(10,8,7)
(7,8,10)
(10,8,6)
(7,10,8)
题目22:对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该 结点赋值a,则执行 p=(struct node *)malloc(sizeof(struct node)p->data=a和(   )。
p->next=topp=top
p->next=toptop=p
top->next=pp=top
top=top->nextp=top
题目23:头指针为head的带头结点的单向链表为空的判定条件是(   )为真。
head->next!=NULL
head->next==NULL
  head==NULL
head->next!=NULL
题目24:设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是(   )阶的对称矩阵。
5
15
20
10
题目25:数组a经初始化char a[ ]=“English”a[1]中存放的是(   )。
E
n
字符n
字符E
题目26:    设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作。hs=s;
s-> next=hs
题目27:    设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈
结点的指针域为next,则可执行hs=hs->next x=hs->data
题目28:    有一个链栈,栈顶指针为h,现有一个p所指向的结点要入栈,则可执行操作p->next=h
和h=p;
题目29:    设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为next,数据域为data,则可执行hs= hs->next x= hs->data
题目30:    在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,则插入所指结点的操作为r->next=s;r=s;
题目31:    在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,s指向一个要入 队的结点,则入队操作为r=s;r->next=s;
题目32:    在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放出队元素的数据值,则相关操作为x=f->data f=f->next
题目33:对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A相应的三元组表共有8个元素,则矩阵A共有34个零元素。
题目34:    循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为r,当(r+1)%MaxSize=f 时表明队列已满。
题目35:循环队列的队头指针为f,队尾指针为r,当r= =f时表明队列已满。
题目36:空串的长度是0;空格串的长度是空格字符的个数。
题目37:    对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行下标、列下标、和非零元素值三项信息。
题目38:循环队列的引入,目的是为了克服假上溢。
题目39:
设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开始,元素 s[26]相应于A中的元素为a 7,5。
题目40:    循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,当队尾指针rear=3时队满。
题目41:    循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,队尾指针rear=3时,队列中共有5个元素。
题目42:以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针
struct  node
{   ElemType  data
struct  node  *next
}
struct node *top
void Push(ElemType x)
{
struct node *p
p=(struct node*)malloc  [[1]]
p->data=x
[[3]]
[[2]]
}
[[1]] -> {A.sizeof (struct node) / top=p / p->next=top}
题目43:       以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别链队列的队头、队尾指针
struct  node
{   ElemType  data
struct  node  *next
}
struct  node  *front,*rear
void InQueue(ElemType x)
{
struct node *p
p= (struct node*) malloc  [[3]]
p->data=x
p->next=NULL
[[1]]
rear= [[2]]
}
[[1]] -> {rear->next=p / p / (sizeof (struct node)}
形考作业3-阶段性学习测验3
题目1:假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为(   )。
16
15
17
47
题目2:二叉树第k层上最多有(   )个结点。
2k-1
2k
2k-1
2k-1
题目3:将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为(   )。
33
34
35
36
题目4:如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为(   )。
二叉树
平衡二叉树
哈夫曼树
完全二叉树
题目5:在一棵度具有5层的满二叉树中结点总数为(   )。
33
32
16
31
题目6:一棵完全二叉树共有6层,且第6层上有6个结点,该树共有(   )个结点。
38
37
72
31
题目7:利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为(   )。
18
16
30
12
题目8:在一棵树中,(   )没有前驱结点。
空结点
树根结点
叶结点
分支结点
题目9:设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有(      )个叶结点。
21
22
10
9
题目10:在一个图G中,所有顶点的度数之和等于所有边数之和的(   )倍。
2
4
1
1/2
题目11:邻接表是图的一种(   )。
链式存储结构
索引存储结构
顺序存储结构
散列存储结构
题目12:图的深度优先遍历算法类似于二叉树的(   )遍历。
后序
先序
层次
中序
题目13:已知下图所示的一个图,若从顶点V1出发,按深度优先搜索法进行遍历,则可能得到的一种顶点序列为(   )。
V1V2V4V8V3V5V6V7
V1V3V6V7V2V4V5V8
V1V2V4V5V8V3V6V7
V1V2V4V8V5V3V6V7
题目14:已知如下图所示的一个图,若从顶点a出发,按广度优先搜索法进行遍历,则可能得到的一种顶点序列为(    )。
aedfcb
aebcfd
abecdf
aecbdf
题目15:图状结构中数据元素的位置之间存在(       )的关系。
多对多
一对一
一对多
每一个元素都有一个且只有一个直接前驱和一个直接后继
题目16:在一棵二叉树中,若编号为i的结点存在右孩子,则右孩子的顺序编号为(    )。
2i
2i+2
2i+1
2i-1
题目17:一棵具有16个结点的完全二叉树,共有(     )层。(设根结点在第一层)
4
5
6
7
题目18:对二叉排序树进行(      )遍历,可以使遍历所得到的序列是有序序列。
后序
按层次
中序
前序
题目19:已知一个图的边数为m,则该图的所有顶点的度数之和为(     )。
2m
m/2
m
2m+1
题目20:一棵二叉树的叶结点(终端结点)数为5,单分支结点数为2,该树共有11个结点。
题目21:一棵有14个结点的完全二叉树,则它的最高层上有7个结点。
题目22:一棵二叉树有6个叶结点,则该树总共有11个结点。
题目23:根据搜索方法的不同,图的遍历有.先序;中序;后序三种方法。
题目24:对于一棵具有n个结点的二叉树,其相应的链式存储结构中共有n-1个指针域空。
题目25:    设一棵完全二叉树,其最高层上最右边的叶结点的编号为奇数,该叶结点的双亲结点的编号为10,该完全二叉树一共有21个结点。
题目26:    设一棵完全二叉树,其最高层上最右边的叶结点的编号为偶数,该叶结点的双亲结点的编号为9,该完全二叉树一共有19个结点。
题目27:按照二叉树的递归定义,对二叉树遍历的常用算法有深度优先遍历和深度优先遍两种方法。
题目28:一棵有8个权重值构造的哈夫曼数,共有17个结点。
题目29:一棵有7个叶结点的二叉树,其1度结点数的个数为2,则该树共有15个结点。
题目30:    以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。完成程序中空格部分。
void
Inorder (struct BTreeNode *BT)
{
if(  BT!=NULL)
{
Inorder(BT->left)
[[1]]
[[3]]
}
利用上述程序对左图进行后序遍历,结果是[[2]]
[[1]] -> {Inorder(BT-> right ) / d,e,b,f,c,a / printf(“%c”,BT->data)}
题目31:    以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
void Inorder (struct BTreeNode *BT)
{
if(BT!=NULL){
Inorder(BT->left)}
[[2]]
[[3]]
}
利用上述程序对右图进行中序遍历,结果是[[1]]
[[1]] -> {d,b,e,a,f,c / printf(“%c”,BT->data) / Inorder(BT->right)}
题目32:(1)以3,4,5,8,9,作为叶结点的权,构造一棵哈夫曼树。该树的带权路径长度为 {A B C D}.
A,64       B.65       C. 62      D. 66
(2)权重为3的叶结点的哈夫曼编码为{A B C D}。
A.010      B.0101      C.000      D.0111
题目33:(1)以2,3,4,7,8,9作为叶结点的权,构造一棵哈夫曼树,该树的带权路径长度为{A B C D}
A,66       B. 80      C. 62       D. 87
(2)权重值为4的叶结点的哈夫曼编码为{A B C D}。
A.0001     B. 1110    C.001    D. 110
题目34:(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是dbeac,该二叉树的根结点是{A B C D}
A. e       B. c       C. b       D. a
(2)先序遍历序列是{A B C D}。
A. e,b,c,d,a          B. c,a,b,,d,e        C. a,b,d,e,c       D. a.c,b,d,e,
题目35:(1)已知某二叉树的先序遍历序列是aecdb,中序遍历序列是eadcb,该二叉树的根结点是{A B C D}
A. e          B. c        C. b        D. a
(2)后序遍历序列为{A B C D}。
A. e,d,b,c,a        B. c,a,b,,d,e      C. a,b,d,e,c      D. a.c,b,d,e,
题目36:(1)以给定权重值5,6,17,18,25,30,为叶结点,建立一棵哈夫曼树,该树的中序遍历序列为{A B C D}
A. 5,11,28,6,17,58,30,101,18,43,25
B. 5,11,6,28,17,58,30,101,18,43,25
C. 5,11,6,28,101,58,30,17,18,43,25
D. 5,11,6,28,17,58,30,101,18,25,43
(2)权重值为6的叶结点的哈夫曼为{A B C D}.
A. 1001      B. 011      C.001      D.0001
形考作业4-阶段性学习测验4
题目1:对线性表进行二分查找时,要求线性表必须(   )。
以链接存储方式
以链接存储方式,且数据元素有序
以顺序存储方式,且数据元素有序
以顺序存储方式
题目2:采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为(   )。
(n-1)/2
(n+1)/2
n/2
n
题目3:有一个长度为10的有序表,按折半查找对该表进行查找,在等概率情况下查找成功的平均比较次数为(   )。
29/10
26/10
31/10
29/9
题目4:已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较(   )次。
5
6
4
3
题目5:有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,应该选择的序列是(   )。
30,24,12,37,45,96,53
45,24,53,12,37,96,30
12,24,30,37,45,53,96
37,24,12,30,53,45,96
题目6: 对于顺序存储的有序表{5,12,20,26,37,42,46,50,64},若采用折半查找,则查找元素26的比较次数是(   )。
6
4
5
3
题目7:在所有的排序方法中,关键字比较的次数与记录初始排列秩序无关的是(   )。
直接选择排序
希尔排序
冒泡排序
直接插入排序
题目8:从未排序序列中依次取出元素与已经排好序的序列中的元素作比较。将其放入已排序序列的正确的位置上,此方法称为(   )。
选择排序
插入排序
交换排序
归并排序
题目9:依次将每两个相邻的有序表合并成一个有序表的排序方法称为(   )。
选择排序
交换排序
插入排序
归并排序
题目10:当两个元素出现逆序的时候就交换位置,这种排序方法称为(   )。
交换排序
选择排序
归并排序
插入排序
题目11:每次把待排序的区间划分为左、右两个子区间,其中左区间中记录的关键字均小于等于基准记录的关键字,右区间中记录的关键字均大于等于基准记录的关键字,这种排序称为(   )。
归并排序
快速排序
插入排序
堆排序
题目12: 一组记录的关键字序列为(46,20,30,79,56,38,40,84,90,110),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(  )。
20,30,40,38,46,79,56,84,90,100
30,20,40,38,46,84,56,79,90,100
40,20,30,38,46,56,79,84,90,110
20,30 38,40,46,56,79,84,90,100
题目13:在有序表{10,14,34,43,47,64,75,80,90}中,用折半查找法查找值80时,经(     )次比较后查找成功。
3
5
4
2
题目14:对序列(49,38,65,97,76,13,47,50)采用直接插入排序法进行排序,要把第七个元素47插入到已排序中,为寻找插入的合适位置需要进行(   )次元素间的比较。
5
6
4
3
题目15:排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始为空)的一端的方法,称为(   )排序。
插入
归并
快速
选择
题目16:一组记录的关键字序列为(26,59,36,18,20,25),利用堆排序的方法建立的初始小根堆为(   )。
18,20,36,59,26,25
18,20,25,59,26,36
26,18,59,20,36,25
26,59,36,18,20,25
题目17:一组记录的关键字序列为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为(   )。
16,25,35,48,23,40,79,82,36,72
16,25,35,48,79,82,23,36,40,72
16,25,48,35,79,82,23,36,40,72
16,25,35,48,79,23,36,40,82,72
题目18:已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该数列从小到大排序,经过一趟冒泡排序后的序列为(   )。
28,16,34,54,62,73,60,26,43,95
16,28,34,54,73,62,60,26,43,95
16,28,34,54,62,60,73,26,43,95
28,16,34,54,62,60,73,26,43,95
题目19:一组记录的关键字序列为(46,79,56,38,40,84),利用快速排序,以第一个关键字为分割元素,经过一次划分后结果为(   )。
40,38,46,79,56,84
40,38,46,56,79,84
40,38,46,84,56,79
38,40,46,56,79,84
题目20:一组记录的关键字序列为(80,57,41,39,46,47),利用堆排序(堆顶元素是最小元素)的方法建立的初始堆为(      )。
39,46,41,57,80,47
39,47,46,80,41,57
39,80,46,47,41,57
41,39,46,47,57,80
题目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== [[2]])
return (bt)
p=bt
while(p->key!= [[5]])
{  if(kkey)
[[1]]
else [[3]]
if(p==NULL) break
}
return([[4]]
}
[[1]] -> {p=p->left / NULL / p=p->right / p / k}
题目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<=[[4]]i++)
{  a[0]=a
x= a.key
s=1
j=i-1
while (s<=j)
{  m=[[1]]
if( x<a[m].key)                 [[2]]              else                 [[5]]            }           for ( k=i-1k>=j+1k- -)
[[3]]=a[k]
a[j+1]=a[0]
}
}
[[1]] -> {(s+j)/2 / j=m-1 / a[k+1] / n / s=m+1}
题目23:   (1)设查找表为(1,10,11,14,23,27,29,55,68) ,画出对上述查找表进行折半查找所对应的判定树,为了成功查找到元素14,需要依次与元素{A B C D}进行比较。
A. 23,10,1,14       B.23,29,27,14      C. 23,10,11,14     D.23,29,55,14
(2)在等概率条件下,成功查找的平均比较次数为{A B C D}。
A.24/9            B. 25 /9           C.3              D.2.5
题目24:   (1)一组记录的关键字序列为(47,80,57,39,41,46),利用堆排序的方法建立的初始堆为{A B C D}(堆顶元素是最小元素,采用树的形式建堆)。
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 B C D}。
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 B C D};
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 B C D}。.
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 B C D}
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 B C D}。
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 B C D};
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 B C D}次元素间的比较。
A. 8     B. 11     C.9     D.10

正确选项:--------

国开电大数据结构(本)形考任务1-4[正确答案]奥鹏资讯分享:

扫描二维码获取答案

热门文章

猜你喜欢