数据结构补考试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一. 填空题(请将答案写在下方的空格中,每题4分,共32分)
1.下列是两个n ×n 的矩阵相乘的算法,求下列算法中@区域的时间频度为①,整个算法的时间复杂度为②。
•void Mult_matrix( int c[][], int a[][], int b[][],int n)
{for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
{c[i,j] = 0;
for (k=1; k<=n; ++k)
@ c[i,j] += a[i,k]*b[k,j];
}
}
2.已知n阶三对角矩阵B,则B中的非零元素的个数为③,现采用以行序为主序的方式将B压缩存储到一个一维数组A[ ]中,则B中任意一个非零元素b ij与A[k]之间的对应关系为④。
3.已知S1=‘GUANGXI_GUANGDONG’,S2=’XI’,则函数INDEX(S1,S2)的运行结果为⑤。
4.已知一棵二叉树的前序扫描序列和中序扫描序列分别为ABCDEFGHIJ,BCDAFEHJIG,则该二叉树的后序序列为⑥。
5.下列是在线性链表中由指针q指出的链结点后面插入一个数据信息item的链结点的算法,在空格处输入代码,实现程序的功能。
Void INSERTERLINK(LinkList&list,LinkList q,ElemType item)
{ LinkList p;
p=( LinkList)malloc(sizeof(LNode));
p->data=item;
if(list==NULL)
{ list=p;
p->link=NULL;
}
Else
{ ⑦;
⑧;
}
}
二. 简答题(按照要求完成下列各题)
1.已知一元多项式f(x)=4x9-5x4+7x2-1 ,请写出用一维数组表示f(x)(选用较为节省空间的方法)。
(10分)
2.已知K=(6,11,6,23,18,13,19,5),构造一棵二叉排序树。
(10分)
3.已知带权连通图如下图所示,使用普里姆算法或克鲁斯卡尔算法构造一棵最小生成树。
(9分)
4.某通讯系统可能是A,B,C,D,E,F六种字符,出现的概率分别是0.1,0.4,0.04,0.16,0.19,0.11,
(1)构造相应的哈夫曼树,(7分)
(2)写出字符的哈夫曼编码(7分)
(3)计算该树的带权路径长度WPL。
(8分)
5.已知AOE网如下图所示,请完成
(1)分别求出活动的最早开始时间与最晚开始时间。
(5分)
(2)求出所有的关键路径。
(5分)
(3)该工程完成的最短时间是?(5分)
三. 程序题( 15分)
请写出一个泡排序算法,该算法将参加排序的数组元素按照升序进行排列。