- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 数组和广义表 ADT Array { 数据对象: D={aj1,j2, ...,,ji, jn| ji =0,...,bi -1, i=1,2,..,n }n是数组 的维数,bi是数组第i维的长度 数据关系: R={R1, R2, ..., Rn} Ri={aj1,... ji,... jn , aj1, ...ji +1, ...jn | 0 ? jk ? bk -1, 1 ? k ? n 且k ? i, 0 ? ji ? bi -2, i=2,...,n } 基本操作 } ADT Array 基本操作: InitArray(A, n, bound1, ..., boundn) 若维数n和各维长度合法,则构造相应的数组A,返回OK DestroyArray(A) 销毁数组A Value(A, e, index1, ..., indexn) 若各下标不超界,e赋值为所指定A的元素值,返回OK Assign(A, e, index1, ..., indexn) 若各下标不超界,将e的值赋值给所指定A的元素,返回OK 对二维数组,有: 数据对象: D = {aij | 0≤i≤b1-1, 0 ≤j≤b2-1} 数据关系: R = { ROW, COL } ROW = {ai,j,ai+1,j| 0≤i≤b1-2, 0≤j≤b2-1} COL = {ai,j,ai,j+1| 0≤i≤b1-1, 0≤ j≤b2-2} 数组可以看成是一种特殊的线性表,即线性表中数据元素本身也是一个线性表 5.1 数组的定义和特点 定义 5.2 数组的顺序存储结构 次序约定 以行序为主序 以列序为主序 对于n维数组 5.3 矩阵的压缩存储 对称矩阵 三角矩阵 稀疏矩阵的压缩存储方法 顺序存储结构 三元组表 求转置矩阵 问题描述:已知一个稀疏矩阵的三元组表,求该矩阵转置矩阵的三元组表 问题分析 一般矩阵转置算法: 两个矩阵相乘 Q=M×N 其中M是m1×n1矩阵,N是m2×n2矩阵,当n1=m2时 for(i=1;i=m1;++i) for(j=1;j=n2;++j){ Q[i][j]=0; for(k=1;k=n1;++k) Q[i][j]+=M[i][k]*N[k][j]; } 时间复杂度是O(m1*n1*n2) 只需在M.data和N.data中找到相应的各对元素(即M.data中的j值和N.data中的i值相等的各对元素)相乘即可 对于M中的每个元素(i,k,M(i,k)),需要找到N.data中所有相应元素(k,j,N(k,j))相乘,因此需在N.data中寻找矩阵N中第k行的所有非零元。N.rpos提供相关信息 row 1 2 3 4 rpos[row] if(Q是非零矩阵){//逐行求值 for(arow=1;arow=M.mu;++arow){ ctemp[ ]=0;//累加器清0 计算Q中第arow行的积并存入ctemp[ ]中 将ctemp[ ]中非零元存储到Q.data } } 十字链表 设行指针数组和列指针数组,分别指向每行、列第一个非零元 结点定义 5.4广义表的定义 ADT Glist { 数据对象:D={ei | i=1,2,..,n; n≥0; ei∈AtomSet 或 ei∈GList, AtomSet为某个数据对象 } 数据关系: LR={ei-1, ei | ei-1 ,ei∈D, 2≤i≤n} 基本操作 } ADT Glist 广义表是递归定义的线型结构, ,其中, 为原子或为子表。 第一个元素 为表头,其余元素组成的表 称作表尾,n是表的长度 基本操作: 结构的创建和销毁: InitGList(L); DestroyGList(L); CreateGList(L, S); CopyGList(T, L); 状态函数: GListLength(L); GListDepth(L); GListEmpty(L); GetHead(L); GetTail(L); 插入和删除操作: I
您可能关注的文档
最近下载
- 2025至2030稀土永磁材料行业发展趋势分析与未来投资战略咨询研究报告.docx
- 高考物理一轮复习重难点逐个突破专题81电磁感应中的单、双棒问题(原卷版+解析).docx VIP
- 部编五年级上册语文单元分析.pdf VIP
- 模拟退火算法课件.pptx VIP
- 2025至2030中国钕稀土磁铁行业发展趋势分析与未来投资战略咨询研究报告.docx VIP
- 2025年安徽高考思想政治真题试卷完全解读(含试卷分析与备考策略).docx VIP
- 2025至2030中国MRI磁铁行业发展趋势分析与未来投资战略咨询研究报告.docx VIP
- 水平三新课标体育与健康教案.pdf VIP
- 《立足课标与课本 科学备战》2025安徽省中考化学复习 策略.pptx
- 土石坝安全监测技术规范.pdf VIP
文档评论(0)