- 0
- 0
- 约3.3千字
- 约 28页
- 2017-02-08 发布于江苏
- 举报
第五章 多维数组和广义表 5.1 多维数组 二维数组中,每个数据元素对应一对数组下标,在行方向上和列方向上都存在一个线性关系,即存在两个前驱和两个后继。也可看作是以线性表为数据元素的线性表。 多维数组用一维的存储单元存放,需约定次序。C语言是行优先顺序。 5.2 矩阵的压缩存储 压缩存储 使用一维数组存储矩阵,并且在一维数组中为多个值相同的元素只分配一个存储空间,对零元不分配空间。 5.2.1 特殊矩阵 对称矩阵: aij=aji 0≤i,j≤n-1 压缩存储方法:为每一对对称元分配一个存储空间 特殊矩阵 三角矩阵:上(下)三角中的元素均为常数c或0 压缩存储方法:只存储上(下)三角元素。 特殊矩阵 5.2.2 稀疏矩阵 已知矩阵Am×n,t为非零元个数,若t(m×n),则称Am×n 为稀疏矩阵。 三元组表结构定义 #define smax 16 //非零元个数最大值 Typedef int datatype typedef struct { int i,j; //行下标和列下标 datatype v; } node; typedef struct { node data[smax]; //非零元三元组表 int m,n,t; //行数、列数、非零元个数 }SpMatrix; SPMatrix *a,*b; 三元组表稀疏矩阵的转置运算 2.十字链表 当矩阵中非零元素的个数和位置经过运算后变化较大时,就不宜采用顺序存储结构,而应采用链式存储结构来表示三元组。 元素结点 rptr——指向同一行中下一个非零元素的指针(向右域) cptr——指向同一列中下一个非零元素的指针(向下域) 十字链表结构定义: typedef struct lnode { int i,j; //非零元的行下标和列下标 struct lnode *cptr,*rptr; union { struct lnode *next; datatype v; }uval; } Link; Link *l; 需要辅助结点作链表的表头,同时每个结点要增加两个指针域,所以只有在矩阵较大和较稀疏时才能起到节省空间的效果。 分别用两个一维数组存储行链表的头指针和列链表的头指针,可加快访问速度。 广义表的图形表示 * * 5.1 多维数组 5.2 矩阵的压缩存储 5.3 广义表 n维数组中,每个数据元素对应n个下标,受n个关系的制约,其中任一个关系都是线性关系。可看作是数据元素为n-1维数组的一维数组。 因此,多维数组是对线性表的扩展:线性表中的数据元素本身又是一个多层次的线性表。 二维数组中任一元素aij的存储地址: n维数组 Loc(aij)=Loc(a00)+(n*i+j)*d 将下三角的元素,按行存储到一维数组sa中,共有n(n+1)/2个存储单元, aij在一维数组中的位置k为: i(i+1)/2+j 当i=j; j(j+1)/2+i 否则 下三角:k=i*(i+1)/2+j (i=j); k=n*(n+1)/2 (ij) 上三角:k=(i/2)*(2n-i+1)+j-i (i=j); k=n*(n+1)/2 (ij) 注意:k, i,j从零开始 对角矩阵:所有非零元都集中在以主对角线为中心的带状区域中 压缩方法:压缩存储到一维数组sa[ ]中,三对角矩阵有3n-2个元素。 用三元组(i,j,v)存储行和列的位置及非零元值。 1. 三元组表 顺序存储方式存储稀疏矩阵的三元组. 稀疏矩阵的转置 Spmatrix *transmat(a) Spmatrix *a; { int ano,bno,col; Spmatrix *b; b=malloc(sizeof(Spmatrix)); b-m=a-n;b-n=a-m;b-t=a-t; if(b-t0) { bno=0; for(col=0;cola-n;col++) for(ano=0;anoa-t;ano++) if(a-data[ano].j==col) { b-data[bno].i= a-data[ano].j; b-data[bno].j= a-data[ano].i; b-data[bno].v= a-data[ano].v;
您可能关注的文档
- 多属性决策的目标体系(第讲)培训教案.ppt
- 多媒体技术及应用图像信息的获取与处理培训教案.ppt
- 多彩贵州培训教案.ppt
- 多态演示文件修改版.ppt
- 多态性优秀讲义.ppt
- 多恩布什宏观经济学培训教案.ppt
- 多总体统计推断演示文件修改版.ppt
- 多环控制的直流调速系统演示文件修改版.ppt
- 多普勒效应培训教案.ppt
- 多次覆盖技术培训教案.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 【花生十三】25公务员考试资料分析速算练习册及速算过程.pdf VIP
- mst2016说明书.pdf VIP
- 口腔科课件洁治.pptx
- 2025兴安盟公安局招聘165名留置看护警务辅助人员备考试题及答案解析.docx VIP
- 35KV变电站毕业设计(完整版).doc VIP
- AP微观经济学 2012年真题 (选择题+问答题) AP Microeconomics 2012 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 上海师范大学天华学院公共课《大学计算机基础》期末试卷A(有答案).docx VIP
- 高中生对AI 技术应用的态度与认知调查问卷.docx VIP
- 2025年度”五个方面“专题组织生活会个人对照检查发言材料.docx VIP
- 南方医科大学各专业实习大纲汇编.pdf VIP
原创力文档

文档评论(0)