全国2012年10月自考数据结构(02331)试题及答案
2012年10月--2007年1月自考2331数据结构历年试题和答案

全国2012年10月高等教育一、单项选择题(本大题共l5小题,每小题2分,共30分)1.一个算法的时间耗费的数量级称为该算法的( D ) D.时间复杂度2.顺序表便于( D ) D.按序号查找结点3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是( B ) B.p->next==head4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为( A ) A.(rear-front+m)%m5.下列关于顺序栈的叙述中,正确的是( A )A.入栈操作需要判断栈满,出栈操作需要判断栈空6.A是一个10×10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a0,0的存储地址为1,每个元素占一个存储单元,则a7,5的地址为( D ) D.347.树的后序遍历等价于该树对应二叉树的( C ) C.中序遍历8.使用二叉线索树的目的是便于( D ) D.查找一个结点的前趋和后继9.设无向图的顶点个数为n,则该图边的数目最多为( B) B.n(n-1)/2 10.可进行拓扑排序的图只能是(C)C.有向无环图11.下列排序方法中稳定的是(A)A.直接插入排序12.下列序列不为..堆的是(C)C.75,65,30,l5,25,4513.对线性表进行二分查找时,要求线性表必须是(C)C.顺序存储且按关键字有序14.分别用以下序列生成二叉排序树,其中三个序列生成的二叉排序树是相同的,不同..的序列是(A)A.(4,1,2,3,5)15.下列关于m阶B树的叙述中,错误..的是(A)A.每个结点至多有m个关键字二、填空题(本大题共10小题,每小题2分,共20分)16.数据元素之间的逻辑关系称为数据的__逻辑____结构。
17.在线性表中,表的长度定义为__数据元素的个数____。
18.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1、2、3、4,为了得到1、3、4、2的出栈顺序,相应的S和X的操作序列为__SXSSXSXX____。
数据结构真题2012年10月

数据结构真题2012年10月(总分:100.00,做题时间:90分钟)一、单项选择题(总题数:15,分数:30.00)1.一个算法的时间耗费的数量级称为该算法的______(分数:2.00)A.效率B.难度C.可实现性D.时间复杂度√解析:[考点] 算法的时间复杂度的概念[解析] 一个算法的时间耗费的数量级称为该算法的时间复杂度。
2.顺序表便于______(分数:2.00)A.插入结点B.删除结点C.按值查找结点D.按序号查找结点√解析:[考点] 顺序表的特征[解析] 顺序表便于按序号查找结点。
3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是______(分数:2.00)A.p->next->next==headB.p->next==head √C.p->next->next==NULLD.p->next==NULL解析:[考点] 指针变量p指向尾结点的判定条件[解析] 单循环链表的指针变量p指向尾结点的判定条件是p->next==head。
4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为______(分数:2.00)A.(rear-front+m)%m √B.rear-front+1C.(front-rear+m)%mD.(rear-front)%m解析:[考点] 队列中元素个数的计算[解析] 队列中元素的个数为(rear-front+m)%m5.下列关于顺序栈的叙述中,正确的是______(分数:2.00)A.入栈操作需要判断栈满,出栈操作需要判断栈空√B.入栈操作不需要判断栈满,出栈操作需要判断栈空C.入栈操作需要判断栈满,出栈操作不需要判断栈空D.入栈操作不需要判断栈满,出栈操作不需要判断栈空解析:[考点] 顺序栈的性质的判断[解析] 入栈操作需要判断栈满,出栈操作需要判断栈空。
6.A是一个10×10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a 0,0的存储地址为1,每个元素占一个存储单元,则a 7,5的地址为______(分数:2.00)A.25B.26C.33D.34 √解析:[考点] 对称矩阵的元素的地址的计算[解析] 若对称矩阵采用下三角压缩存储,根据其地址的计算公式,可得到所求元素的地址。
02331自考数据结构 第二章 线性表

return ;
}
if ( L -> length >= ListSize ){
printf (" overflow ");
return ;
}
for ( j - L -> length -1; j >= i -1; j --)
L ->data [ j +1]= L -> data [ j ]; //从最后一个元素开始逐一后移
线性表的基本运算
上述运算仅仅是线性表的基本运算,不是其全部运 算。因为对不同问题的线性表,所需要的运算可能不同。 因此,对于实际问题中涉及其他更为复杂的运算,可用 基本运算的组合来实现。
线性表的基本运算
【例2.1】假设有两个线性表 LA 和 LB 分别表示两个 集合 A 和 B ,现要求一个新集合 A = A∪B 。
线性表的逻辑定义
数据元素“一个接一个的排列”的关系叫做 线性关系,线性关系的特点是“一对一”,在计 算机领域用“线性表”来描述这种关系。另外, 在一个线性表中数据元素的类型是相同的,或者 说线性表是由同一类型的数据元素构成的,如学 生情况信息表是一个线性表,表中数据元素的类 型为学生类型;一个字符串也是一个线性表:表 中数据元素的类型为字符型等等。
,
a2
i
,…,
ai-1
,
a.aii++1.1 , .…,
an
)
an
线性表n的-1逻辑结an构和存储结构都发…生了相应的变化, 与插入运算相反,插…入是向后移动元素,而删除运算则
是向前移M动AX元-1 素,除非i=n 时直接删除终端元素,不需移
动元素。
删除前
删除后
2010年至2013年数据结构答案02331.jpg资料

全国2010年1月高等教育自学考试数据结构试题及参考答案课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是( A )A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是( C )A.树B.图C.栈和队列D.广义表3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为( B )A.O(1) B.O(m)C.O(n) D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是( C )A.2个B.3个C.4个D.6个5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为( B )A.3 B.37C.50 D.976.若栈采用链式存储结构,则下列说法中正确的是( B )A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空7.若串str=”Software”,其子串的数目是( D )A.8 B.9C.36 D.378.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为( C )A.1012 B.1017C.1032 D.10399.允许结点共享的广义表称为( D )A.纯表B.线性表C.递归表D.再入表10.下列数据结构中,不属于二叉树的是( A )A.B树B.AVL树C.二叉排序树D.哈夫曼树11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是( C )A.1,5,2,6,3,4 B.1,5,6,2,3,4C.5,1,6,3,4,2 D.5,1,2,6,4,312.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是( D )A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v413.下列排序算法中不稳定的是( A )A.快速排序B.归并排序C.冒泡排序D.直接插入排序14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是( B )A.2 B.3C.4 D.815.采用ISAM组织文件的方式属于( D )A.链组织B.顺序组织C.散列组织D.索引组织二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
计算机科学与技术自考本科02331自考数据结构(题库含答案)

02331数据结构一、单选题1.下列程序段的时间复杂度为( D )s=0;for(i=1;i<n ;i++)for(j=1;j<n ;j++)s+=i*j ;A.O(1)B.O(n)C.O(2n)D.O(n 2)2.假设某个带头结点的单链表的头指针为head ,则判定该表为空表的条件是( B )A.head==NULL ;B.head->next==NULL ;C.head!=NULL ;D.head->next==head ;3.栈是一种操作受限的线性结构,其操作的主要特征是( B )A.先进先出B.后进先出C.进优于出D.出优于进4.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front 和rear 。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( B )A.(rear-front-1)%nB.(rear-front)%nC.(front-rear+1)%nD.(rear-front+n)%n5.判断两个串大小的基本准则是( D )52A.两个串长度的大小B.两个串中首字符的大小C.两个串中大写字母的多少D.对应的第一个不等字符的大小6.二维数组A[4][5]按行优先顺序存储,若每个元素占2个存储单元,且第一个元素A[0][0]的存储地址为1000,则数组元素A[3][2]的存储地址为( C )A.1012B.1017C.1034D.10367.高度为5的完全二叉树中含有的结点数至少为( A )A.16B.17C.31D.328.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( C )A.5B.8C.11D.189.下列关键字序列中,构成大根堆的是( D )A.5,8,1,3,9,6,2,7B.9,8,1,7,5,6,2,33C.9,8,6,3,5,l ,2,7D.9,8,6,7,5,1,2,310.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为( B )A.1539B.1549C.1551D.155512.估算算法时间复杂度时考虑的问题规模通常是指算法求解问题的 ( A )。
2012年10月全国自考(数据库及其应用)真题试卷(题后含答案及解析)

2012年10月全国自考(数据库及其应用)真题试卷(题后含答案及解析)题型有:1. 单项选择题 2. 填空题 3. 简答题 4. 综合题单项选择题1.设学生成绩实体包括学号、姓名、数学、物理、外语、总成绩等属性,其中冗余的属性为( )A.数学B.物理C.外语D.总成绩正确答案:D解析:数据冗余是指同—个数据在系统中多次重复出现,总成绩属性值依赖于数学、物理、外语,故选D。
2.在设计数据库应用系统时,首先要把用户需求转化为数据库的( )A.外部模型B.内部模型C.概念模型D.逻辑模型正确答案:C解析:概念模型是从用户需求的观点出发对数据建模的。
3.已知E-R图中有3个实体,实体之间存在1个1:n的联系和1个m:n的联系,将该E-R图转换成关系模型时,可得到的关系模式数为( ) A.3B.4C.5D.6正确答案:B解析:三个实体,则有三个关系模式,又实体问存在一个多对多关系,所以该联系也要转换为模式,故得到的关系模式数为4。
4.设有关系R和S,其基数和元数均为3,则R×S的基数为( ) A.6B.9C.12D.15正确答案:B解析:关系中属性的个数称元数,元组的个数称基数。
R和S的基数均为3,则R×S的基数为3*3=9。
5.有学生成绩表:SC(学号,课程号,分数),已知一个学生可以选多门课,一门课有多个学生选,则SC表的主键应该是( )A.学号B.课程号C.分数D.学号,课程号正确答案:D解析:主键是指能够唯一标识记录的某个字段或某几个字段的组合,故本题中的学生成绩表的主键为学号+课程号。
6.Access利用分组授权机制实现安全性控制,系统提供了两个默认的组,分别是( )A.系统组和用户组B.管理员组和用户组C.管理员组和操作员组D.系统组和操作员组正确答案:B解析:Access利用分组授权机制实现安全性控制,系统提供了两个默认的组,即管理员组和用户组,但也可以创建其他组。
7.Access允许用户自定义工作环境,若要更改表中字段的默认数据类型,可以单击“工具”菜单中“选项”命令,在“选项”对话框中使用的选项卡是( )A.表/查询B.数据表C.编辑查询D.常规正确答案:A解析:“表/查询”选项卡用于设计表或设计查询时设置有关的默认值,如默认字段类型。
自考数据结构02331历年试题与答案(2009__2015个人整理版)

自考数据结构02331历年试题及答案(2009--2015个人整理版)全国2009年1月自学考试数据结构试题一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列程序段的时间复杂度为( )9s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A.O(1)B.O(n)C.O(2n)D.O(n2)2.假设某个带头结点的单链表的头指针为head,则判定该表为空表的条件是( )22A.head==NULL;B.head->next==NULL;C.head!=NULL;D.head->next==head;3.栈是一种操作受限的线性结构,其操作的主要特征是( )32A.先进先出B.后进先出C.进优于出D.出优于进4.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( )A.(rear-front-1)%nB.(rear-front)%nC.(front-rear+1)%nD.(rear-front+n)%n5.判断两个串大小的基本准则是( )52A.两个串长度的大小B.两个串中首字符的大小C.两个串中大写字母的多少D.对应的第一个不等字符的大小6.二维数组A[4][5]按行优先顺序存储,若每个元素占2个存储单元,且第一个元素A[0][0]的存储地址为1000,则数组元素A[3][2]的存储地址为( )60A.1012B.1017C.1034D.10367.高度为5的完全二叉树中含有的结点数至少为( )72A.16B.17C.31D.328.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( )C.11D.189.下列所示各图中是中序线索化二叉树的是( A )81A10.已知含6个顶点(v 0,v 1,v 2,v 3,v 4,v 5)的无向图的邻接矩阵如图所示,则从顶点v 0出发进行深度优先遍历可能得到的顶点访问序列为( )108 A.(v 0,v 1,v 2,v 5,v 4,v 3) B.(v 0,v 1,v 2,v 3,v 4,v 5) C.(v 0,v 1,v 5,v 2,v 3,v 4) D.(v 0,v 1,v 4,v 5,v 2,v 3)11.如图所示有向图的一个拓扑序列是( ) A.ABCDEF B.FCBEADC.FEDCBAD.DAEBCF12.下列关键字序列中,构成大根堆的是( ) A.5,8,1,3,9,6,2,7 B.9,8,1,7,5,6,2,33 C.9,8,6,3,5,l ,2,7 D.9,8,6,7,5,1,2,313.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为( )172 A.1539 B.1549 C.1551 D.1555 14.已知一个散列表如图所示,其散列函数为H(key)=key %11,采用二次探查法处理冲突,则下一个插入的关键字49的地址为( D )d 19715.数据库文件是由大量带有结构的( )206 A.记录组成的集合 B.字符组成的集合 C.数据项组成的集合 D.数据结构组成的集合二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
数据结构自考考试题及答案

数据结构自考考试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 算法编写的时间长短B. 算法执行时所需要的基本操作的多少C. 算法程序的长度D. 算法程序运行时所占用的内存空间大小答案:B2. 单链表相比于顺序表,其优点是()。
A. 查找速度快B. 插入和删除操作更加方便C. 存储空间少D. 需要的内存少答案:B3. 下列关于队列的描述,正确的是()。
A. 队列是先进先出(FIFO)的数据结构B. 队列是先进后出(LIFO)的数据结构C. 队列只能进行插入操作D. 队列只能进行删除操作答案:A4. 在二叉排序树中,一个节点的右子树上所有节点的值()。
A. 一定小于该节点的值B. 一定大于或等于该节点的值C. 一定大于该节点的值D. 一定小于或等于该节点的值答案:C5. 哈希表是基于()的数据结构。
A. 顺序存储B. 链式存储C. 直接存储D. 索引存储答案:C6. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()。
A. O(n)B. O(n^2)C. O(log n)D. O(1)答案:C7. 在图的遍历中,深度优先搜索(DFS)使用的是()。
A. 栈B. 队列C. 链表D. 数组答案:A8. 堆数据结构中,父节点的值总是()于子节点的值。
A. 相等B. 不确定C. 大D. 小答案:C9. 一个完全二叉树的第6层(从1开始计数)可以有的最大节点数是()。
A. 32B. 16C. 64D. 31答案:B10. 在各种排序算法中,空间复杂度最小的是()。
A. 选择排序B. 插入排序C. 归并排序D. 快速排序答案:B二、填空题(每题2分,共20分)11. 在顺序存储的堆中,对于具有n个节点的二叉树,对于编号为i 的节点,其父节点的编号是_________。
答案:(i-1)/212. 一个长度为n的单链表进行一次反转操作的时间复杂度是_________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国2012年10月高等教育自学考试数据结构试题课程代码:02331请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共l5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。
错涂、多涂或未涂均无分。
1.一个算法的时间耗费的数量级称为该算法的A.效率B.难度C.可实现性D.时间复杂度2.顺序表便于A.插入结点B.删除结点C.按值查找结点D.按序号查找结点3.设带头结点的单循环链表的头指针为head,指针变量P指向尾结点的条件是A.p->next->next==head B.p->next==headC.p->next->next==NULL D.p->next==NULL4.设以数组A[0..m-1]存放循环队列,front指向队头元素,rear指向队尾元素的下一个位置,则当前队列中的元素个数为A.(rear-front+m)%m B.rear-front+1C.(front-rear+m)%m D.(rear-front)%m5.下列关于顺序栈的叙述中,正确的是A.入栈操作需要判断栈满,出栈操作需要判断栈空B.入栈操作不需要判断栈满,出栈操作需要判断栈空C.入栈操作需要判断栈满,出栈操作不需要判断栈空D.入栈操作不需要判断栈满,出栈操作不需要判断栈空6.A是一个10×10的对称矩阵,若采用行优先的下三角压缩存储,第一个元素a0,0的存储地址为1,每个元素占一个存储单元,则a7,5的地址为A.25 B.26C.33 D.347.树的后序遍历等价于该树对应二叉树的A.层次遍历B.前序遍历C.中序遍历D.后序遍历8.使用二叉线索树的目的是便于A.二叉树中结点的插入与删除B.在二叉树中查找双亲C.确定二叉树的高度D.查找一个结点的前趋和后继9.设无向图的顶点个数为n,则该图边的数目最多为A.n-l B.n(n-1)/2C.n(n+1)/2 D.n210.可进行拓扑排序的图只能是A.有向图B.无向图C.有向无环图D.无向连通图11.下列排序方法中稳定的是A.直接插入排序B.直接选择排序C.堆排序D.快速排序12.下列序列不为..堆的是A.75,45,65,30,15,25 B.75,65,45,30,25,15C.75,65,30,l5,25,45 D.75,45,65,25,30,1513.对线性表进行二分查找时,要求线性表必须是A.顺序存储B.链式存储C.顺序存储且按关键字有序D.链式存储且按关键字有序14.分别用以下序列生成二叉排序树,其中三个序列生成的二叉排序树是相同的,不同..的序列是A.(4,1,2,3,5) B.(4,2,3,l,5)C.(4,5,2,1,3) D.(4,2,1,5,3)15.下列关于m阶B树的叙述中,错误..的是A.每个结点至多有m个关键字B.每个结点至多有m棵子树C.插入关键字时,通过结点分裂使树高增加D.删除关键字时通过结点合并使树高降低非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共10小题,每小题2分,共20分)16.数据元素之间的逻辑关系称为数据的______结构。
17.在线性表中,表的长度定义为______。
18.用S表示入栈操作,X表示出栈操作,若元素入栈的顺序为1、2、3、4,为了得到1、3、4、2的出栈顺序,相应的S和X的操作序列为______。
19.在二叉树中,带权路径长度最短的树称为______。
20.已知广义表G,head(G)与tail(G)的深度分别为4和6,则G的深度是______。
21.一组字符(a,b,c,d)在文中出现的次数分别为(7,6,3,5),字符'd'的哈夫曼编码的长度为______。
22.在一个具有n个顶点的无向图中,要连通全部顶点至少需要______条边。
23.直接选择排序算法的时间复杂度是______。
24.对于长度为81的表,若采用分块查找,每块的最佳长度为______。
25.用二叉链表保存有n个结点的二叉树,则结点中有______个空指针域。
三、解答题(本大题共4小题,每小题5分,共20分)26.假设Q是一个具有11个元素存储空间的循环队列(队尾指针指向队尾元素的下一个位置,队头指针指向队头元素),初始状态Q.front=Q.rear=0;写出依次执行下列操作后头、尾指针的当前值。
a,b,c,d,e,f入队,a,b,c,d出队;(1) Q.front=______;Q.rear=______。
g,h,i,j,k,l入队,e,f,g,h出队;(2) Q.front=______;Q.rear=______。
M,n,o,P入队,i,j,k,l,m出队;(3) Q.front=______;Q.rear=______。
27.已知一个无向图如题27图所示,以①为起点,用普里姆(Prim)算法求其最小生成树,画出最小生成树的构造过程。
28.用归并排序法对序列(98,36,-9,0,47,23,1,8)进行排序,问:(1)一共需要几趟归并可完成排序。
(2)写出第一趟归并后数据的排列次序。
29.一组记录关键字(55,76,44,32,64,82,20,16,43),用散列函数H(key)=key%11将记录散列到散列表HT[0..12]中去,用线性探测法解决冲突。
(1)画出存入所有记录后的散列表。
(2)求在等概率情况下,查找成功的平均查找长度。
四、算法阅读题(本大题共4小题,每小题5分,共20分)30.顺序表类型定义如下:# define ListSize 100typedef struct {int data[ListSize];int length;}SeqList;阅读下列算法,并回答问题:void f30(SeqList *L){ int i,j;i=0;while(i<L->length)if (L->data[i]%2!=0){ for(j=i+1; j<L->length; j++ }L->data[j-1]=L->data[j];L->length--;}else i++}(1)若L->data 中的数据为(22,4,63,0,15,29,34,42,3),则执行上述算法后L->data中的数据以及L->length的值各是什么?(2)该算法的功能是什么?31.有向图的邻接矩阵类型定义如下:#define MVN 100 ∥最大顶点数typedef int EType; ∥边上权值类型typedef struct{EType edges[MVN][MVN]; ∥邻接矩阵,即边表int n; ∥ 图的顶点数}MGraph; ∥ 图类型例如,一个有向图的邻接矩阵如下所示:0 1 0 0 01 0 0 0 10 1 0 1 01 0 0 0 00 0 0 1 1A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦阅读下列算法,并回答问题:V oid f31(MGraph G){Int i,j,k=0;Step1:for (i=0; i<G.n; i++)for (j=0; j<G .n; j++)if (G.edges[i][j]= =1) k++;printf (“%dn”,k); step2:for (j=0; j<G.n; j++){ k=0;for (i=0; i<G.n; j++)if (G .edges[i][j]= =1) k++;printf (“%dn”,k);}}(1)stepl 到step2之间的二重循环语句的功能是什么?(2)step2之后的二重循环语句的功能是什么?32.阅读下列算法,并回答问题:void f32(int r[], int n){Int i ,j ;for (i=2;i<n ;i++){ r[0]=r[i];j=i-l ;while (r[0]<r[j]){ r[j+l]=r[j];j=j-1;}r[j+l]=r[0];}}(1)这是哪一种插入排序算法?该算法是否稳定?(2)设置r[0]的作用是什么?33.顺序表类型定义如下:typedef int SeqList[100];阅读下列算法,并回答问题:void f33(SeqList r,int n){ int a, b,i;if (r[0]<r[1]){ a=r[0];b=r[1];>else { a=r[1];b=r[0];}for (i=2;i<n;i++)if (r[i]<a) a=r[i];else if (r[i]>b) b=r[i];printf("a=%d,b=%d。
n",a,b);}(1)给出该算法的功能;(2)给出该算法的时间复杂度。
五、算法设计题(本题10分)34.二叉树的存储结构类型定义如下typedef struct node{int data;struct node *lchild,*rchild;} BinNode;typedef BinNode *BinTree;编写递归算法,求只有一个孩子结点的结点总数,并计算这些结点的数据值的和。
函数的原型为:void f34(BinTree T, int *count, int *sum)*count和*sum的初值为0。