



全文预览已结束
付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组和广义表作业5单项选择题1广义表(a,b),(c,d)的表尾是()。(四川大学计算机学院2004年试题)A)(c,d)B)(c,d)C)(d)D)d【分析】广义表(a,b),(c,d)可看成是(d1,d2)所组成,其中d1=(a,b),d2=(c,d),所以表尾为(d2)=(c,d)。【答案:B】2若广义表A满足Head(A)=Tail(A),则A为()。(北方名校经典试题)A)()B)()C)(),()D)(),(),()【分析】根据广义表 Head运算和Tail运算的定义,可用代入法求解:A)Head(A) ,Tail(A):无定义B)Head(A)=() ,Tail(A)=()C)Head(A)=() ,Tail(A)=()D)Head(A)=(),Tail(A)=(),()【答案:B】二、综合题1已知稀疏矩阵如下图所示,试写出三元组表示。(南方名校经典试题)【解答】其中,第一行的(4,5,6)表示稀疏矩阵的行数,列数及非零元素的值,其他各行为三元组。注:本题选做。2若在矩阵Ann中存在一个元素ai-1,j-1满足ai-1,j-1是第i行元素中最小值且又是第j列元素中的最大值,则称此元素为该矩阵的一个马鞍点。假设以二维数组存储矩阵Ann,试设计一个求该矩阵所有马鞍点的算法。(北方名校经典试题)注:本题选做。【解答】用数组Sn存储某一行(如第i行,i=1m)的元素值最小的元素的下标,c表示此行的元素值等于最小值的元素的个数(元素值等于最小值的元素可能不止一个),对每个元素值最小的元素再验证是否是所在列的元素值最大的元素,如是则为马鞍点,将其输出。C+语言版测试程序见4_2_3c+,具体算当如下:template void SaddlePoint(ElemType *A,int m,int n)/输出矩阵A所有马鞍点ElemType *S=new ElemTypen+1;/存储某一行的元素值最小元素的下标int c; /表示此行的最小值等于最小的元素的个数int count=0;/马鞍点的个数int i,j,k;ElemType min;/某一行的最小元素值for(i=1;i=m;i+)min=*(A+(i-1)*n+(1-1); /*(A+(i-1)*n+(1-1)等价于A(i,1)c=1;S1=1; /当前已得的元素值最小的元素下标与个数for(j=2;j=n;j+)if(*(A+(i-1)*n+(j-1)min)/*(A+(i-1)*n+(j-1)等价于A(i,j)/A(i,j)minmin=*(A+(i-1)*n+(j-1);/A(i,j)为新的最小值c=1;S1=j;/当前已得的元素值最小的元素下标与个数else if(*(A+(i-1)*n+(j-1)=min)/*(A+(i-1)*n+(j-1)等价于A(i,j)/A(i,j)=minc+;/元素值最小的元素值自加1Sc=j;for(j=1;j=c;j+)/对第i行的c个元素值最小的元素判断是否是马鞍点k=1;/判断是否第Sj列有大于A(i,Sj)的元素while(k=*(A+(k-1)*n+(Sj-1)/*(A+(i-1)*n+(Sj-1)等价于A(i,Sj)*(A+(k-1)*n+(Sj-1)等价于A(k,Sj)*(A+(i-1)*n+(Sj-1)=*(A+(k-1)*n+(Sj-1)等价于A(i,Sj)=A(k,Sj)*/k+;if(km)/表示AiSj是第Sj列的最大元素,它是马鞍点count+;/马鞍点个数自加1coutendl(i,Sj,;/*(A+(i-1)*n+(Sj-1)等价于A(i,Sj) cout*(A+(i-1)*n+(Sj-1); if(count=0)coutendlNo any saddle.;/无马鞍点 elsecoutendlThere are count saddles.;/有count个马鞍点C+语言版测试程序见4_2_3c,具体算当如下:void SaddlePoint(ElemType *A,int m,int n)/输出矩阵A所有马鞍点ElemType *S=new ElemTypen+1;/存储某一行的元素值最小元素的下标int c; /表示此行的元素值等于最小值的元素的个数int count=0;/马鞍点的个数int i,j,k;ElemType min;/某一行的最小元素值for(i=1;i=m;i+)min=*(A+(i-1)*n+(1-1); /*(A+(i-1)*n+(1-1)等价于A(i,1)c=1;S1=1; /当前已得的元素值最小的元素下标与个数for(j=2;j=n;j+)if(*(A+(i-1)*n+(j-1)min)/*(A+(i-1)*n+(j-1)等价于A(i,j)/A(i,j)minmin=*(A+(i-1)*n+(j-1);/A(i,j)为新的最小值c=1;S1=j;/当前已得的元素值最小的元素下标与个数else if(*(A+(i-1)*n+(j-1)=min)/*(A+(i-1)*n+(j-1)等价于A(i,j)/A(i,j)=minc+;/元素值最小的元素值自加1Sc=j;for(j=1;j=c;j+)/对第i行的c个元素值最小的元素判断是否是马鞍点k=1;/判断是否第Sj列有大于A(i,Sj)的元素while(k=*(A+(k-1)*n+(Sj-1)/*(A+(i-1)*n+(Sj-1)等价于A(i,Sj)*(A+(k-1)*n+(Sj-1)等价于A(k,Sj)*(A+(i-1)*n+(Sj-1)=*(A+(k-1)*n+(Sj-1)等价于A(i,Sj)=A(k,Sj)*/k+;if(km)/表示AiSj是第Sj列的最大元素,它是马鞍点count+;/马鞍点个数自加1coutendl(i,Sj,;/*(A+(i-1)*n+(Sj-1)等价于A(i,Sj) cout*(A+(i-1)*n+(Sj-1); if(count=0)coutendlNo an
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 九、物体的颜色说课稿初中物理北师大版北京八年级全一册-北师大版北京2013
- 2025年围手术护理技术题库及答案
- 第7课 彩色小树分层画说课稿小学信息技术电子工业版安徽六年级上册-电子工业版(安徽)
- 第1课数据与信息说课稿初中信息技术青岛版2024第三册-青岛版2024
- 江西吉安市市直事业单位选调考试真题2024
- 2025年中国残联笔试题目及答案
- 教师模拟讲课面试题目及答案
- 2024年重庆两江新区人才发展集团有限公司招聘真题
- 2024年广州市教育系统招聘笔试真题
- 腕关节退变机制研究-洞察及研究
- 兄弟分户房屋协议书模板
- ICU常见体位护理
- 人民陪审员刑事培训课件
- JJF(蒙) 058-2023 重点排放单位碳计量审查规范
- 2025年高一的数学知识点大纲
- 2025年平面图形的画法说课教学课件
- 养老院保洁培训课件
- 小学歌曲教学课件设计与实践
- 不交社保给补贴协议书
- 顺产与剖腹产课件
- 《生成式人工智能》 课件 第4章 Transformer模型
评论
0/150
提交评论