- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]ch5数组和广义表
第 五章 广义线性表-数组和广义表 数组可以看成是一种特殊的线性表,即线性表中数据元素本身也是一个线性表 5.1 数组的定义和特点 5.1.1 定义 5.2 数组的顺序存储结构 5.2.1 次序约定 以行序为主序 以列序为主序 稀疏矩阵的压缩存储方法 A. 顺序存储结构---三元组表 三元组表的数据类型: B. 求转置矩阵 问题描述:已知一个稀疏矩阵的三元组表,求该矩阵转置矩阵的三元组表 问题分析 一般矩阵转置算法: 三元组表转置: void TransposeMatrix(Matrix A, Matrix B) { /*把矩阵A转置到B所指向的矩阵中去, 矩阵用三元组表表示 */ B.mu= A.nu ; B.nu= A.mu ; B.tu= A.tu ; if(A.tu0) { 为了能将待转置三元组表A中元素一次定位到三元组表B的正确位置上,需要预先计算以下数据: (1)待转置矩阵A每一列中非零元素的个数(即转置后矩阵每一行中非零元素的个数)。 (2)待转置矩阵A每一列中第一个非零元素在三元组表B中的正确位置。 void FastTransMatrix (Matrix A, Matrix B) { B.mu= A.nu ; B.nu= A.mu ; B.tu= A.tu ; if(B.tu0) { for(col=0; colA.nu; col++) num[col]=0; for(t=0; tA.tu; t++) {n= A.data[t].col; num[n]++;} cpot[0]=0; for(col=1; colA.nu; col++) cpot[col]=cpot[col-1]+num[col-1]; /*求col列中第一个非零元素在B.data[ ]中的下标 */ 十字链表 设行指针数组和列指针数组,分别指向每行、列第一个非零元 结点定义 4.3.3 广义表的存储结构 表中数据元素类型不统一——采用链式存储结构 *广义表的表尾一定是一个表。任何一个非空的广义表都可以分解成表头和表尾两部分,一对确定的表头和表尾可以唯一地确定一个广义表. ——采用头尾表示法存储广义表 例:广义表D=(( ),(e),(a,(b,c,d)))的链式存储结构示意图 这种存储结构的特点 容易分清列表中原子和子表所在的层次 最高层的表结点的个数即为表的层次 tp域指向列表表尾,(除非表尾为空则指针为空,否则必为表结点)。 思考: 1.已知广义表L=((x,y,z),(u,t,w)) ,用tail和head运算从L表中取出原子t。 2.广义表(a,(a,b),d,e,((i,j),k)) 的长度和深度各是多少? 方法二:一次定位快速转置算法 依次按三元组表A的次序进行转置,转置后直接放到三元组表B的正确位置上。这种转置算法称为快速转置算法。 需要设两个数组: num[col]:用来存放三元组表A中第col列中非零元素个数(三元组表B中第col行非零元素的个数)。计算方法: 将三元组表A扫描一遍,对于其中列号为k的元素,给相应的num[k]加1。 cpot[col]:用来存放转置前三元组表A中第col列(转置后三元组表B中第col行)中第一个非零元素在三元组表B中的正确位置。 计算方法: cpot[0]=0 cpot[col]=cpot[col-1]+num[col-1](1≤col≤nu)。 算法实现: 计算A中每一列的非零元素的个数 计算A中每一列的第一个非零元素在B中的下标 依次取A中的每一个非零元素对应的三元组: 3.1 确定该元素在B中的下标pb 3.2 将该元素的行列号交换后存入B中pb的位置 3.3 预置该元素所在列的下一个元素的存放位置(cpot[col]加1) for(p=0; pA.tu; p++) //扫描A三元组表并依次转置 { j=A.data[p].col; //A中当前三元组的列号 k=cpot[j]; //当前三元组在B中的下标 B.data[k].row=A.data[p].col; B.data[k].col=A.data[p].row;
您可能关注的文档
- [2018年最新整理]CAD如何设置绘图比例.doc
- [2018年最新整理]CAD基础教程从入门到施工图(配图).doc
- [2018年最新整理]CAD学习文档04.ppt
- [2018年最新整理]CAD学习文档07.ppt
- [2018年最新整理]CAD学习课件Chapter1.ppt
- [2018年最新整理]cad布局和空间出图设置及各种比例调整.doc
- [2018年最新整理]CAD应用基础.ppt
- [2018年最新整理]CAD布局设置.doc
- [2018年最新整理]cad快捷键.docx
- [2018年最新整理]CAD快捷键+自设快捷键+比例基础.doc
- DB51_T 3137-2023 柑橘园间作豆类栽培技术规程.docx
- Q_HY 07-2023 低温阀门技术条件.docx
- DB52∕T 1454-2019 精神病专科护理服务基本规范.docx
- T_XJZJXH GY10002.2-2024 “新疆品质” 特色产品技术规范 薰衣草精油.docx
- DB21_T 3981-2024 滑菇采收贮运技术规程.docx
- DB1308_T 368-2025 北柴胡生产技术规程.docx
- DB1307_T 454-2024 谷子品种 张杂谷6号.docx
- DB36T 1574-2022 食品快速检测结果验证通用技术规范.docx
- DB13(J)∕T 202-2016 公共建筑能耗远程监测系统技术标准.docx
- DB21_T 1564.9-2007 岩土工程勘察技术规程 抽水试验规程.docx
文档评论(0)