算法期末试卷
Ⅰ 大学期末成绩怎么算,卷面占百分之八十
大学期末成绩一般是由平时成绩和卷面成绩两部分组成。其中,卷面成绩一般占总成绩的比重较大,通常在70%至80%左右。平时成绩则占剩余的20%至30%。具体算法如下:假设一门课程的总成绩为100分,其中卷面成绩占80分,平时成绩占20分。则该门课程的总成绩计算公式为:总成绩 = 卷面成绩*0.8 + 平时成绩*0.2例如,某学生的卷面成绩为90分,平时成绩为85分,则其该门课程的总成绩为:总成绩 = 90 * 0.8 + 85 * 0.2 = 87因此,该学生在该门课程中的总成绩为87分。Ⅱ 人教版四年级下册数学期末模拟卷_小学四年级下册数学期末试卷模板
随着数学考试的即将来临,你做好复习的准备了吗?这份小学数学的模拟卷将会有效的去检测出你的学习情况。以下是由我收集整理的人教版四年级下册数学期末模拟卷,希望能够帮助到你!
人教版四年级下册数学期末模拟卷一
一、填空:(共20分)
1、在一个三角形中,∠1=105°,∠2=25°,那么∠3=( ),这是一个( )三角形;一个等腰三角形的底角是60°,它的顶角是( ),这个三角形是( )三角形。
2、0.018里面有( )个千分之一;9个百分之一写成小数是( )。
3、把1.8扩大1000倍是( ),缩小到它的千分之一是( )。
4、用0、1、2、3和小数点组成一个最大的小数是( ),组成最小的小数是( )。
5、306900改成用“万”作单位的数是( ),把387330000改成用“亿”作单位的数是( )。
6、把一个小数的小数点先向右移动两位,再向左移动三位,得到的数比原数( )。
7、 由5个0.1,6个0.01和8个0.001组成的数是( )。
8、 95分米=( )米, 5432米=( )千米。
480公顷=( )平方千米 6500平方米=( )公顷
5.005公顷=( )公顷( )平方米 ,4.05千米=( )千米( )米
9、1.96≈( )(精确到十分位); 3.068≈( )(保留两位小数)。
7.995≈( )(精确到十分位),7.99596≈( )(保留两位小数)
7.99986≈( )(保留三维小数)
10、三角形的内角和是( )度,长方形的内角和是三角形内角和的( )倍。
二、计算题(36分)。
1、口算:(6分)
3.64+0.48= 50-37.5= 11.6+1.4= 60÷5= 48÷8×9= 400×6=
11×800= 0×60÷12= 2.5+0.9= 0.39+0.61= 528-53-47=
192-128= 41.5-41.5= 360÷30= 5×99+5= 0.058×100=
2、计算下面各题,并且验算:(6分)
41.2-15.6 21.56+6.74
3、计算下面各题:(能简算的要简算)(18分)
6.7+25+3.3+75 103×12 14.85-(4.85+2.5)
15×99+15 9.14-1.43-4.57 2000÷125÷8
4、文字题:(6分)
(1)5.38加上9.36与3.72的差,和是多少?
(2)已知两个数的和是85.7,其中一个加数是15.7,
求另一个加数是多少?
三、判断题。(6分)
1.A+B+C=A+(B+C)。 ( )
2.在小数后面添上“0”或去掉“0”,小数的大小不变 .( )
3.0.596保留两位小数是0.6。 ( )
4.0.80元和0.8元都表示8角。 ( )
5把7.6先扩大100倍,再缩小10倍后是76.4。 ( )
6、因为0.3=0.30,所以他们表达的意义也相同。 ( )
四、操作题:(8分)
(1)画出一个直角等腰三形,并求出这个三角形的另外两个角的度数。(4分)
3 (2)画出下面三角形各底上的高。(4分)
五、应用题。(22分)
1、珠海出租车起步价为3千米收费7元,3千米以上,每增加1千米收费1元,不足1千米按一千米收费请完成下表:(4分)
路程(千米) 3 4 5 .6 8收费 (元)
2、地球表面积是5.1亿平方千米,其中陆地面积是1.49亿平方千米,海洋面积比陆地面积多多少亿平方千米?(4分)
3、一根电线,用去32.87米,比剩下的多8.99米,这根电线长多少米?(4分)
4、 甲有14.8元,乙有15.2元,两人要合买一个 足球 ,一个足球的价钱是他俩钱数总和的2倍,一个足球多少元,他们还差多少元?(5分)
5,100千克油菜籽可榨油21.6千克的油,照这样计算,1吨油菜籽可榨油多少千克的油?(5分)
人教版四年级下册数学期末模拟卷二
一、填空。(16%)
1、8.745保留一位小数是(8.7),0.398精确到百分位是(0.40 )。
2、310.04读作(三百一十点零四);零点三零七 写作(0.307 )。
3、5.903是由(5)个1,(9)个0.1,(0)个0.01,(3)个0.001组成的。
4、把一个小数的小数点向右移动三位,再向左移动两位,这个数是40.9。原来这个小数是(4.09)。
5、三角形具有(稳定)性;三角形的内角和是(180°)。
6、计算48×98+48×2时,运用(乘法分配)律可以使计算简便。
7、不改变数的大小,把4.5改写成三位小数是(4.500)。
8、一个等腰三角形的一个底角是350,它的顶角是(110)度。
9、一根木头长6米,要把它锯成4段。每锯一段需要5分钟,锯完一共需要(15)分钟。
二、判断题。(正确的画“√”,错误的画“×”)(6%)
1、在表示近似数的时候,小数末尾的零不能去掉。……………………(√ )
2、乘法分配律用字母表示为(a+b)c=ac+bc……………………………(√ )
3、等边三角形每个内角都是60度。………………………………………(√ )
4、被减数等于减数,差一定是0。…………………………………………(× )
5、用三个完全一样的直角三角形可以拼成一个梯形。……………………(√)
6、0.078扩大100倍是78。………………………………………………(×)
三、选择题。(把正确答案的番号填在括号里。)(6%)
1、三角形任意任意两边的和(②)第三边。
① 等于 ② 大于 ③ 小于 ④ 大于或等于
2、0.0385精确到( ④ )位是0.039。
① 十分位 ② 百分位 ③ 个位 ④ 千分位
3、小于6.98的数是( ④ )。
① 7 ② 6.980 ③ 6.99 ④ 6.890
4、78×99用简便 方法 计算是( ② )。
① 78×100+78×1 ② 78×100-78
③ 78×100+1 ④ 78×100-1
5、把改写成小数是( ③ )。
① 0.13 ② 0.130 ③ 0.013 ④ 0.0013
6、鸡、鸭、鹅、狗各一只,一共重28千克,鸡和鸭一样重,鹅重是鸭的3倍,狗重是鹅的3倍。鹅重( ③ )。
① 2千克 ② 8千克 ③ 6千克 ④ 18千克
四、计算。
1、口算。(6%)
0.36+0.14= 7.2-5.8= 1-0.4=
1-0.08= 4.8+3.12= 0.01+0.1=
3.9+4.4+5.1= 4.7-0.47-1.43= 102×5=
25×17×4= 120÷5÷2= 20-20÷5=
2、用竖式计算,并验算。(6%)
48.5+47.25= 20.8-6.48=
人教版四年级下册数学期末模拟卷三
1、一个没有括号的算式里,如果只有加、减法或者只有乘、除法,要按( )顺序依次运算;如果既有加、减法又有乘、除法,要先算( ),后算( )。
2、一个算式里,有括号的应先算( ),后算( )。
3、0不可以做( )数。
4、加法结合律用字母表示是(a+b)+c=( )。
5、乘法分配律用字母表示a×(b+c)=( )。
6、21.003读作( )
7、六点零八八写作:( )
8、一个数十位和百分位上是3,十分位和个位上是0,这个数是( )
9、0.8是8个( )分之一。0.32是( )个百分之一。
10、在( )中,填上“>”、“<”或“=”。
21×1( )21+1 12×5+5( )12×(5+5)
84÷12×2( )84÷(12÷2) 123-23+77( )123-(23+77)
56×99+1( )56×(99+1)
11、整数部分的最低位是( )位,小数部分的最高位是( )位,它们之间的进率是( )。
三、我能判,对的打“√”错的打“×”(5分)1、(125+8)×8=125×8+8 ( )
2、65+75+25=65+(75+25),这是应用了加法的结合律. ( )
3、0.09的计数单位是0.01 ( )
4、805的末尾添上两个“0”,数的大小不变。 ( )
5、a-b-c=a-(b+c) ( )
四、我会选。(5分)
1、小数点的右边第二位是( )
A.十分位 B.百分位 C.十位
2、把40.06读作( )
A.四零点零六 B.四十点六 C.四十点零六
3.在计算25×166×4=25×4×166=100×166=16600中应用的运算定律是( )
A.乘法分配律 B.乘法交换率 C.乘法结合律
4、715×99的简便算法是( )。
A、715×90×9 B、715×100+715 C、715×100-715
5、小芳在小华的南偏西25º方向200米处,那么小华在小芳的 ( )方向200米处。
A.西偏南75º B。北偏东25º C.西偏南25º
猜你还感兴趣的:
1. 人教版四年级下册数学期末试卷及答案
2. 新人教版四年级上册数学期末模拟卷
3. 四年级下册数学期末试卷
4. 四年级数学下册期末试卷
5. 四年级下册数学试卷
6. 四年级下册数学期末复习试题
Ⅲ 谁有数据结构的期末试题,借我参考下马上考试了
A:
06-07第一学期期末考试试卷
试卷代码:03266A 授课课时:112
课程名称:数据结构与算法 适用对象:本科
一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。答案错选或未选者,该题不得分。每小题2分,共24分。)
1.数据结构被形式地定义为(K,R),其中K是数据元素的有限集,R是K上的___有限集。
A.操作 B.映像 C.存储 D.关系
2.线性表若采用链式存储结构时,要求内存中可用存储单元的地址____。
A.必须连续的 B.部分地址必须连续的 C.一定是不续的 D.连续不连续都可以
3.一个栈的入栈序列是a、b、c、d、e,则栈的不可能输出序列是____。
A.edcba B.decba C.dceab D.abcde
4.一个队列的入队序列是1、2、3、4,则队列输出序列是____。
A.4、3、2、1 B.1、2、3、4 C.1、4、3、2 D.3、2、4、1
5.栈和队列的共同点是____。
A.都是先进后出 B.都是先进先出
C.只允许在端点处插入、删除元素 D.没有共同点
6.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行____。
A. s->next = p->next; p->next=s; B. p->next = s->next; s->next = p;
C. q->next = s; s->next = p; D. p->next = s; s->next = q;
7.设串s1=‘ABCDEFG’,s2=‘PQRST’,函数con (x, y) 返回x与y串的连接串,函数subs (s, i, j) 返回串s的从序号i的字符开始的j个字符组成的子串,函数len (s) 返回串s的长度,则con (subs (s1, 2, len (s2)), subs (s1, len (s2), 2)) 的结果串是____。
A. BCDEF B. BCDEFG C. BCPQRST D. BCDEFEF
8.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为____。
A. 2h B. 2h-1 C. 2h +1 D. h +1
9.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历结点访问顺序是dgbaechf,则其后序遍历结点访问顺序是____。
A. bdgcefha B. gdbecfha C. bdgaechf D. gdbehfca
10.具有6个顶点的无向图至少应有____条边才能确保是一个连通图。
A. 5 B. 6 C. 7 D. 8
11.采用顺序查找方法查找长度为n的线性表时,每个元素的平均查找长度为–。
A. n B. n/2 C. (n+1)/2 D. (n-1)/2
12.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(注:初始时为空)的一端的方法,称为____。
A. 希尔排序 B. 归并排序 C. 插入排序 D. 选择排序
二、填空题(请在每小题的横线上填入正确内容,每空1分,共7分。)
1.在树形结构中,树根结点没有 结点,其余每个结点有且只有 个前驱结点。
2.对n个元素的序列进行起泡排序时,最少的比较次数是 。
3.空串是 ,其长度等于0。
4.一棵有n个结点的满二叉树共有 个叶子结点。
5.在散列函数H(key)=key % p中,p应取 。
6.已知模式串t=‘abcaabbabc’, 其用KMP法求得的每个字符对应的next函数值为 。
三、简答题(本大题共3小题,每小题5分,共15分)
1.在对线性表的处理中一般使用两种存储结构,顺序存储结构和链式存储结构。试叙述在什么情况下使用顺序表比链表好?
2.简述什么是稳定的排序,什么是不稳定的排序。
3.下列中缀表达式对应的后缀形式是什么?
(1) (A + B) * D + E / (F + A * D) + C
(2) A && B|| ! (E > F) {注:按C的优先级)
四、判断题(本大题共10小题,命题正确的在题后括号内写 “T”,错误的在题后括号内写“F”,每小题1分,共10分)
1.数据元素不是数据的最小单位( )。
2.已知一棵二叉树的前序序列和后序序列可以唯一地构造出该二叉树。( )
3.AOE网是一种带权的无环连通图。( )
4.对于同一组待输入的关键码集合,虽然各关键码的输入次序不同,但得到的二叉搜索树都是相同的( )。
5.一棵树中的叶子数一定等于与其对应的二叉树的叶子数。( )
6.邻接表只能用于有向图的存储,邻接矩阵对于有向图和无向图的存储都适用。( )
7.折半插入排序是稳定的。( )
8.在散列法中,使用双散列函数可保证绝对不产生冲突。( )
9.消除递归不一定需要使用栈( )
10.堆排序是交换排序的一种。( )
五、分析应用题(本题共26分,1、4小题各6分,2、3小题各7分)
1.阅读后分析下面程序段的功能是什么? (6分)
SeqStack S1, S2, tmp;
DataType x; //设栈tmp和S2已做过初始化
while ( ! StackEmpty (S1))
{ x=Pop(S1) ;
Push(tmp,x);
}
while ( ! StackEmpty (tmp) )
{ x=Pop(tmp);
Push( S2, x);
}
2.某子系统在通信联络中只可能出现8种字符,其出现的概率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11试设计赫夫曼编码。(7分)
3.设散列表为HT[13], 散列函数为 H (key) = key %13。用线性探测再散列法解决冲突, 对下列关键码序列 12, 23, 45, 57, 20, 03, 78, 31, 15, 36 造表。画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度。(7分)
4.设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18}, 试写出使用希尔排序(增量为5,2,1)方法每趟排序后的结果。(6分)
六、算法设计题(本题共18分,第1小题10分,第2小题8分)
1.编写一个算法frequency,统计在一个输入字符串中所含各个不同字符出现的频度。用适当的测试数据来验证这个算法。(10分)
2.在一棵以二叉链表表示的二叉树上,试写出用按层次顺序遍历二叉树的方法,并统计树中具有度为1的结点数目的算法。要求给出二叉链表的类型定义。(8分)
答案:
06-07第一学期
期末考试参考答案与评分标准
试卷代码:03266A 授课课时:112
课程名称:数据结构与算法 适用对象:本科
一、单项选择题(每小题2分,共24分。)
1. D 2. D 3. C 4. B 5. C 6. C
7. D 8. B 9. D 10. A 11. C 12. D
二、填空题(每空1分,共7分。)
1.父(或前驱), 1
2. n-1
3. 不包含任何字符的串
4. (n+1)/2
5. 素数
6. 0111223123
三、简答题(每小题5分,共15分)
1.答:① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。
优点:存储密度大,存储空间利用率高。缺点:插入或删除元素时不方便。
②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
优点:插入或删除元素时很方便,使用灵活。缺点:存储密度小(<1),存储空间利用率低。
顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。
若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;
若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
2.答:在排序序列中,任何两个相等的关键字Ki=Kj,如果在排序前的序列中Ki领先于Kj,若在排序后的序列中Ki仍领先于Kj,则称所用的排序方法是稳定的;反之,若可能使排序后的序列中Kj领先于Ki,则称所用的排序方法是不稳定的。
3.答:各中缀表达式的后缀形式如下:
(1)AB+D*EFAD*+/+C+
(2)AB&&EF>!||
四、判断题(本大题共10小题,命题正确的在题后括号内写 “T”,错误的在题后括号内写“F”,每小题1分,共10分)
1.T 2.F 3.T 4.F 5.F
6.F 7.T 8.F 9.T 10.F
五、分析应用题(1、4小题各6分,2、3小题各7分)
1.(6分)
答:程序段的功能是利用tmp栈将一个非空栈s1的所有元素按原样复制到一个栈s2当中去。
2.(7分)
答:为方便起见,设各种字符的权值w={5,29,7,8,14,23,3,11}。因为n=8,所以要构造的赫夫曼树共有m=2n-1=2*8-1=15个结点。生成的赫夫曼树为下图所示:
赫夫曼编码为:概率为0.23的字符编码为:00
概率为0.11的字符编码为:010
概率为0.05的字符编码为:0110
概率为0.03的字符编码为:0111
概率为0.29的字符编码为:10
概率为0.14的字符编码为:110
概率为0.07的字符编码为:1110
概率为0.08的字符编码为:1111
3.(7分)
答:使用散列函数H(key)=key mod 13 有:
H(12)=12, H(23)=10,H(45)=6,H(57)=5,H(20)=7,H(03)=3,H(78)=0,H(31)=5,H(15)=2,H(36)=10
利用线性探查法造表:
0 1 2 3 4 5 6 7 8 9 10 11 12
78 15 03 57 45 20 31 23 36 12
1 1 1 1 1 1 4 1 2 1
搜索成功的平均搜索长度为:
ASL=1/10(1+1+1+1+1+1+4+1+2+1)=14/10
4.(6分)
答: 希尔排序(增量为5,2,1)
六、算法设计题(第1小题10分,第2小题8分)
1. (10分)
include <iostream.h>
include”string.h”
int charnumber=128;
void frequency(string&s,int C[ ]){
for(int i=0;i< charnumber;i++) C[i]=0;
for( i=0;i< s.length();i++) C[atoi(s[i])]++;
for( i=0;i< charnumber;i++)
if(C[i]>0) cout<<”(”<<i<<”):\t”<<C[i]<<”\t”;
}
2. (8分)
类型定义(略)
int Level(BiTree bt) //层次遍历二叉树,并统计度为1的结点的个数
{
int num=0; //num统计度为1的结点的个数
if(bt){
QueueInit(Q); QueueIn(Q,bt);//Q是以二叉树结点指针为元素的队列
while(!QueueEmpty(Q))
{ p=QueueOut(Q); printf(p->data); //出队,访问结点
if(p->lchild && !p->rchild ||!p->lchild && p->rchild)
num++;//度为1的结点
if(p->lchild) QueueIn(Q,p->lchild); //非空左子女入队
if(p->rchild) QueueIn(Q,p->rchild); //非空右子女入队
}
}
return(num); //返回度为1的结点的个数
}
B:
06-07第一学期期末考试试卷
试卷代码:03266B 授课课时:112
课程名称:数据结构与算法 适用对象:本科
一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。答案错选或未选者,该题不得分。每小题2分,共24分。)
1.数据结构被形式地定义为 (K, R),其中K是____的有限集,R是K上的关系有限集。
A.算法 B.数据元素 C.数据操作 D.逻辑结构
2.在数据结构中,从逻辑上可以把数据结构分成____。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构
C.线性结构和非线性结构 D.内部结构和外部结构
3.以下的叙述中,正确的是____。
A.线性表的存储结构优于链式存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
4.若一个栈的入栈序列是1、2、3、… 、n,其输出序列为p1、p2、p3、… 、pn,若p1=n,则pi为____。
A. i B. n = i C. n - i +1 D.不确定
5.判断一个循环队列QU (最多元素为m) 为空的条件是____。
A. QU->front == QU->rear B. QU->front != QU->rear
C. QU->front == (QU->rear+1)%m D. QU->front != (QU->rear+1)%m
6.在某单链表中,已知p所指结点不是最后结点,在p之后插入s所指结点,则执行____。
A. s->next = p; p->next=s; B. s->next = p->next; p->next = s;
C. s->next = p->next; p = s; D. p->next = s; s->next = p;
7.串是一种特殊的线性表,其特殊性体现在____。
A.可以顺序存储 B.数据元素是一个字符
C.可以链接存储 D.数据元素可以是多个字符
8.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,前序遍历序列是____。
A. acbed B. decab C. deabc D. cedba
9.对于一个满二叉树,m个树叶,n个结点,深度为h,则____。
A. n = h + m B. h + m = 2n C. m = h-1 D. n = 2h -1
10.一个有n个顶点的无向图最多有____条边。
A. n B. n(n-1) C. n(n-1)/2 D. 2n
11.顺序查找法适合于存储结构为____的线性表。
A. 散列存储 B. 顺序存储或链接存储
C. 压缩存储 D. 索引存储
12.在待排序的元素序列基本有序的前提下,效率最高的排序方法是____。
A. 插入排序 B.选择排序 C.快速排序 D. 归并排序
二、填空题(请在每小题的横线上填入正确内容,每空1分,共7分。)
1.在线性结构中,第一个结点 前驱结点,其余每个结点有且只有1个前驱结点。
2.在无权图G的邻接矩阵中,若A[i][j]等于1,则等于A[j][i] = 。
3.根据二叉树的定义,具有三个结点的二叉树有 种不同的形态。
4.空格串是指 ,其长度等于 。
5.在散列存储中,装填因子α的值越大,则存储元素时发生冲突的可能性就 。
6.已知模式串t= ‘abacabaaad’, 其用KMP法求得的每个字符对应的next函数值为 。
三、简答题(本大题共3小题,每小题5分,共15分)
1.比较静态查找与动态查找的主要区别,它们的基本运算有哪些不同?
2.逻辑结构分哪几种,存储结构有哪几种?
3.在具有n(n>1)个结点的各棵不同形态树中,其中深度最小的那棵树的深度是多少?它共有多少叶子和非叶子结点?
四、判断题(本大题共10小题,命题正确的在题后括号内写 “T”,错误的在题后括号内写“F”,每小题1分,共10分)
1.每种数据结构都应具备三种基本运算:插入、删除、搜索( )。
2.满二叉树不一定是完全二叉树。( )
3.带权连通图的最小生成树的权值之和一定小于它的其它生成树的权值之和。( )
4.任一棵二叉搜索树的平均搜索时间都小于用顺序搜索法搜索同样结点的顺序表的平均搜索时间。( )
5.线性链表中所有结点的类型必须相同。( )
6.用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中顶点个数有关,而与图的边数无关( )。
7.在散列法中解决冲突时,其装载因子的取值一定在(0,1)之间。( )
8.任何一个关键活动延迟,那么整个工程将会延迟。( )
9.平衡二叉树的左右子树深度之差的绝对值不超过1。( )
10.n个结点的有向图,若它有n(n-1)条边,则它一定是强连通的。( )
五、分析应用题(本题共26分,1、4小题各6分,2、3小题各7分)
1.下述算法的功能是什么? (6分)
LinkList Demo(LinkList L)
{ // L 是无头结点单链表
ListNode *Q,*P;
if(L&&L->next){
Q=L;
L=L->next;
P=L;
while (P->next) P=P->next;
P->next=Q; Q->next=NULL;
}
return L;
}
2.将给定的图简化为最小的生成树,要求从顶点1出发。(7分)
3.设散列表为HT[13], 散列函数为 H (key) = key %13。用双散列法解决冲突, 对下列关键码序列 12, 23, 45, 57, 20, 03, 78, 31, 15, 36 造表。再散列函数为 RH (key) = (7*key) % 10 + 1, 寻找下一个地址的公式为 Hi = (Hi-1 + RH (key)) % 13, H1 = H (key)。画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度。(7分)
4.设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},写出使用快速排序法每趟排序后的结果。(6分)
六、算法设计题(本题共18分,第1小题10分,第2小题8分)
1.试设计一个实现下述要求的查找运算函数Locate。设有一个带表头结点的双向链表L, 每个结点有4个数据成员:指向前驱结点的指针llink、指向后继结点的指针rlink,存放字符数据的成员data和访问频度freq。所有结点的freq 初始时都为0。每当在链表上进行一次Locate(L, x) 操作时,令元素值为x的结点的访问频度freq加1,并将该结点前移,链接到与它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。(10分)
2.设一棵二叉树以二叉链表为存贮结构,设计一个算法将二叉树中所有结点的左,右子树相互交换。要求给出二叉链表的类型定义。(8分)
答案:
06-07第一学期
期末考试参考答案与评分标准
试卷代码:03266B 授课课时:112
课程名称:数据结构与算法 适用对象:本科
一、单项选择题(每小题2分,共24分。)
1. B 2. C 3. B 4. C 5. A 6. B
7. B 8. D 9. D 10.C 11. B 12. A
二、填空题(每空1分,共7分。)
1. 无
2. 1
3. 5
4. 串中字符全为空格 , 空格的个数
5. 大
6. 0112123422 。
三、简答题(本大题共5小题,每小题5分,共15分)
1.答:两种查找方法最大的区别在于:
静态查找方法不修改查找表;动态查找在查找不成功时,将结点插入查找表中,即有可能修改查找表;
静态查找的基本运算有建表、查找和读表元;动态查找除上述基本操作外还有初始化、插入和删除操作;
2.答:根据数据元素之间关系的不同特性,通常有下列四类基本结构:(1)集合;(2)线性结构;(3)树形结构;(4)图状结构或网状结构。有两种不同的存储结构:顺序存储结构和链式存储结构。
3.答:深度最小的那棵树的深度为2。对于这n个结点,除了一个根结点之外,其余得n-1个结点均为叶子结点,故其深度为2。该树叶子结点数为n-1,非叶子结点数为1。
四、判断题(每小题1分,共10分)
1. (T) 2. (F) 3. (T) 4. (F) 5. (T)
6. (T) 7. (F) 8. (T) 9. (T ) 10.(T)
五、分析应用题(本题共26分,1、4小题各6分,2、3小题各7分)
1.(6分)
答:该算法的功能是:将开始结点摘下链接到终端结点之后成为新的终端结点,而原来的第二个结点成为新的开始结点,返回新链表的头指针。
2.(7分)
答:
3.(7分)
答:使用散列函数H(key)=key mod 13 有:
H(12)=12, H(23)=10,H(45)=6,H(57)=5,H(20)=7,H(03)=3,H(78)=0,H(31)=5,H(15)=2,H(36)=10
利用双散列法造表:Hi =(Hi-1+RH(key))%13, Hi =H(key)
0 1 2 3 4 5 6 7 8 9 10 11 12
78 15 03 57 45 20 31 36 23 12
1 1 1 1 1 1 3 5 1 1
搜索成功的平均搜索长度为:ASL =1/10(1+1+1+1+1+1+3+5+1+1)=16/10
4.(6分)
答:
六、算法设计题(第1小题10分,第2小题8分)
1.(10分)
答:
(1) 定义链表结构
struct DoubleListNode {
char data ;
int freq;
DoubleListNode * llink, *rlink ;
};
初始时,所有结点的freq域的值都为0。
(2) 定义函数
DoubleListNode * locate ( DoubleListNode *f ; char &x ) {
DoubleListNode * p, *q;
p = f→rlink; /*跳过表头结点*/
while ( p != NULL && p→data != x ) p = p→rlink; /*搜索*/
if ( p ) {
p→freq ++; q = p→llink;
p→rlink→llink = q; q→rlink = p→rlink; /*从链中摘下p*/
while ( q != f &&q→freq < p→freq ) q =q→llink;
p→llink = q;
p→rlink = q→rlink; q→rlink→llink = p;
q→rlink = p; /*在q后面插入p*/
}
return p;
}
2. (8分)
答:类型定义(略)
void exchange(BiTree bt)//将二叉树bt所有结点的左右子树交换
{
if(bt)
{ BiTree s;
s=bt->lchild; bt->lchild=bt->rchild; bt->rchild=s; //左右子女交换
exchange(bt->lchild); //交换左子树上所有结点的左右子树
exchange(bt->rchild); //交换右子树上所有结点的左右子树
}
}