一、2025年秋江苏开放大学数据结构与算法形考作业三单选题答案
1、设有6个结点的无向图,该图至少应有()条边才能确保是一个连通图。
A、6
B、8
C、7
D、5
学生答案:D
2、对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K%9作为散列函数,则散列地址为1的元素有()个
A、2
B、4
C、1
D、3
学生答案:B
3、对n个记录的文件进行快速排序,所需要的辅助存储空间大致为()
A、O(n2)
B、O(1og2n)
C、O(n)
D、O(1)
学生答案:B
4、若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为()
A、9,4,2,3
B、9,5,2,3
C、1,2,3
D、9,5,3
学生答案:A
5、二叉树的第k层的结点数最多为()。

学生答案:D
6、树最适合用来表示()。
A、无序数据元素
B、有序数据元素
C、元素之间具有分支层次关系的数据
D、元素之间无联系的数据
学生答案:C
7、设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A、688
B、696
C、692
D、678
学生答案:C
8、以下数据结构中哪一个是非线性结构?()
A、二叉树
B、栈
C、队列
D、线性表
学生答案:A
9、用链接方式存储的队列,在进行插入运算时()
A、仅修改头指针
B、头、尾指针可能都要修改
C、头、尾指针都要修改
D、仅修改尾指针
学生答案:B
10、栈和队列的共同特点是()。
A、都是先进后出
B、没有共同点
C、都是先进先出
D、只允许在端点处插入和删除元素
学生答案:D
二、2025年秋江苏开放大学数据结构与算法形考作业三简答题答案
题型:简答题主观题分值10分难度:中等得分:10
1、已知一个图的顶点集V和边集E分别为:
(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20
V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,
(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
学生答案:
用克鲁斯卡尔算法得到的最小生成树为:(1,2)3,(4,6)4,(1,3)5,(1,4)8,(2,5)10,(4,7)20
题型:简答题主观题分值10分难度:中等得分:10
2、LinkList mynote(LinkList L)
{//L是不带头结点的单链表的头指针
if(L&&L->next){
q=L;L=L->next;p=L;
S1:while(p->next)p=p->next;
S2:p->next=q;q->next=NULL;
return L;
}
请回答下列问题:
(1)说明语句S1的功能;
(3)设链表表示的线性表为(a1,a2,…,an),写出算法执行后的返回值所表示的线性表。
学生答案:
(1)查询链表的尾结点
(2)将第一个结点链接到链表的尾部,作为新的尾结点
(3)返回的线性表为(a2,a3,…,an,a1)
题型:简答题主观题分值10分难度:中等得分:10
3、void ABC(BTNode*BT)
{
if BT{
ABC(BT->left);
ABC(BT->right);
cout<<BT->data<<”;
}
}
该算法的功能是:
学生答案:
递归地后序遍历链式存储的二叉树。
题型:简答题主观题分值10分难度:中等得分:10
4、算法填空二叉搜索树的查找——递归算法:
bool Find(BTreeNode*BST,ElemType&item)
{
if(BST==NULL)
return false;//查找失败
else{
if(item==BST->data){
item=BST->data;//查找成功
return___________;}
else if(item<BST->data)
return Find(______________,item);
else return Find(_______________,item);
}//if
}
学生答案:
true BST->left BST->right
题型:简答题主观题分值20分难度:较难得分:20
5、编写算统计出单链表HL中结点的值等于给定值X的结点数。
int CountX(LNode*HL,ElemType x)
学生答案:
int CountX(LNode*HL,ElemType x)
{int i=0;LNode*p=HL;//i为计数器
while(p!=NULL)
{if(P->data==x)i++;
p=p->next;
}//while,出循环时i中的值即为x结点个数
return i;
}//CountX
请先
!