华中科技大学《数据结构》2020-2021学年期末试卷.docxVIP

  • 0
  • 0
  • 约3.9千字
  • 约 5页
  • 2026-01-21 发布于江西
  • 举报

华中科技大学《数据结构》2020-2021学年期末试卷.docx

华中科技大学试卷

2020-2021学年第1

学期课号2010423-403-411-439-586-416-407

课程名称:数据结构与算法(A卷,闭卷)适用年级+专业2019级计科、软工、智能、物联网

考试时间120

分钟学号姓名

题号

成绩

1

2

3

4

5

6

7

8

9

满分

10

10

10

10

10

10

12

12

16

100

得分

评卷人

一、应用题(共50分)

1.(本题10分)一组记录的关键码为{46,79,56,38,40,84,12},则(1)写出一趟希尔排序后的结果;(3分)

(2)利用快速排序的方法,以第一个记录为基准,写出一趟排序后的结果;(3分)(3)若使用堆排序,且排序后的关键码要求是递增序,画出初始堆;(4分)

2.(本题10分)给定一组字符以及它们出现的权值(括号内的值为各字母出现的权值), D(7),E(31),I(19),L(23),A(11),S(5),V(4)

(1)画出对应的哈夫曼树;(在构造哈夫曼树时要求每棵子树的左孩子的权值不大于右孩子 的权值)(4分)

(2)给出每个字符的哈夫曼编码;(4分)

(3)若有编码序列“00011001011011101010111”,请依据上面的huffman树写出译码结 果。(2分)

3.(本题10分)将序列{4,5,8,2,1,3,6}中的整数依次插入一棵空的平衡二叉树中,要求依次画出插入各整数后得到的平衡二叉树。

4.将关键字序列{7,8,30,11,18,9,14}散列存储到散列表中。散列函数为:H(key)=(key*3)%7,处理冲突采用线性探查法,要求负载因子为0.7。

(1)请画出所构造的散列表;(7分)

(2)分别计算在等概率情况下,查找成功和不成功时的平均查找长度(3分)。

1/5(A卷)

5.(本题10分)已知图G的邻接矩阵如下所示,其顶点V={v1,v2,v3,v4,v5,v6,v7,v8}。

v1v2v3v4v5v6v7v8

(1)画出图G(3分)

(2)若图中8个顶点代表城市,边的权值代表城市之间修建公路花费的代价,请选择能沟通 每个城市,且总造价最小的7条公路,写出选择过程(7分)

二、算法分析及设计题(共50分)

6.(本题10分)试分别写出以下4个算法片段的时间复杂度,用大O阶表示。(1)intnum1,num2;

for(inti=0;in;i++)

{

num1=num1+1;

for(intj=1;j=n;j=j*2)

num2=num2+num1;

}

(2)inti=1,s=0;

while(in)

{

s=s+i;

i=i+1;

}

(3)intfun(int*a,intn)

{

intmin=a[0];

for(inti=1;in;i=i+2)

if(mina[i])min=a[i];

returnmin;

}

inttest(inta[][12],intn)

{

for(inti=0;in;i++)

printf(%d,fun(a[i],12);

}

2/5(A卷)

(4)voidfunc(intn)

{inti=0,s=0;

while(s=n)

{i++;

s=s+i;

}

}

7.(本题12分)若有程序如下:

#includestdio.h

voidqSort(inta[],intn)//对数组a中n个元素进行排序{intflag=0,tmp;

for(inti=0;in-1;i++)

{

flag=0;

for(intj=0;jn-i-1;j++)

if(a[j]a[j+1])

{

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

flag=1;

}

if(flag==0)break;

for(inti=0;in;i++)

printf(%d,a[i]);

printf(\n);

}

文档评论(0)

1亿VIP精品文档

相关文档