数据结构课件
第3章 稀疏矩阵和广义表 主要学习内容 1. 稀疏矩阵的定义和三元组线性表表示 2. 稀疏矩阵的转置运算 3. 广义表的定义和表示,广义表长度和深度的计算 4. 广义表的链接存储结构中结点类型的定义 一般了解内容 1. 稀疏矩阵的顺序存储、带行指针向量的链接存储,它们中非零元素结点的结构 2. 稀疏矩阵的转置运算的算法描述 3. 分别求广义表长度和深度的递归算法 3.1 稀疏矩阵 3.2 广义表 3.1 稀疏矩阵 一、稀疏矩阵的定义 1、定义:是一种特殊矩阵,它的非零元素的个数远远小于零元素的个数 2、三元组线性表表示 包括元素的行号、列号和元素值三项 以行号为主序,列号为辅序 3、抽象数据类型(略) 二、稀疏矩阵的存储结构(了解) 1、顺序存储(了解) 非零元素的结构 struct Triple{ int row,col; ElemType val; }; 其中row为行号、col为列号、val为元素值 稀疏矩阵的顺序存储结构 struct SMatrix{ int m,n,t; Triple sm[MaxTerms+1]; }; 其中m为行数、n为列数、t为非零元素的个数,sm数组用来存储每个三元组元素,MaxTerms要大于等于t 2、链接存储(了解) 带行指针向量的链接存储(了解) 每个三元组结点 struct TripleNode{ int row,col; ElemType val; TripNode* next; }; 其中row为行号、col为列号、val为元素值 带行指针向量的链接存储类型 struct LMatrix{ int m,n,t; TripleNode* vector[MaxRows+1]; }; 其中m为行数、n为列数、t为非零元素的个数,vector数组用来存储每行单链表的表头指针,MaxRows要大于等于m 十字链接存储(了解) 每个三元组结点 struct TripleNode{ int row,col; ElemType val; CrossNode* down, * right; }; 十字链接存储类型 struct CLMatrix{ int m,n,t; CrossNode* rv[MaxRows+1]; CrossNode* cv[MaxColumns+1]; }; 三、稀疏矩阵的运算(不要求掌握算法) 1、在初始化一个稀疏矩阵的函数定义中,矩形形参说明为引用参数 2、稀疏矩阵的转置(要求掌握其方法,不要求掌握算法) 练习:P117:普通题T1 小结与训练: P116:单选题T1、2;填空题T1——6 3.2 广义表 一、定义 1、定义:是n(n=0)个元素的序列。在非空广义表中,元素分单元素和表元素两类 2、一般用小写字母表示单元素,用大写字母表示表元素 二、广义表的表示 1、线性表表示 例:D=(A(),B(e),C(a,(b,c,d))) 2、图形表示 圆圈表示表元素,方框表示单元素 例: D=(A(),B(e),C(a,(b,c,d)))的图形表示如下图 三、基本概念 1、长度: 指广义表中所含元素的个数 在图形表示中等于处于第二层的元素个数 2、深度: 指广义表中括号嵌套的最大次数 在图形表示中等于总层数减1,空表的深度取1 (以后所学的)“树”的深度等于总层数 3、表头 指第一个元素 4、表尾 指除第一个元素以外的所有元素构成的表 练习:求以下各广义表的长度、深度、表头、表尾:P106 A=() B=(e) C=(a,(b,c,d)) D=((),(e),(a,(b,c,d))) E=((a,(a,b),((a,b),c))) 结果: 长度 深度 表头 表尾 A 0 1 没有
您可能关注的文档
最近下载
- SY_T 5106-2019 石油天然气钻采设备 封隔器规范.docx VIP
- 世界著名谈判案例.docx VIP
- T_CPI 11037-2024 石油天然气钻采设备水力振荡器技术与应用规范.docx VIP
- 雪铁龙维修 手册 图DS_5LS_Owner_Book_ZH.pdf VIP
- 2025至2030药用真菌行业项目调研及市场前景预测评估报告.docx
- T_SCMES 24—2024(石油天然气钻采设备智能钻机).pdf VIP
- 财务共享模式下企业内部控制研究——以延长石油为例.docx VIP
- 财务共享延长石油集成方案.pdf VIP
- 2025《延安延长石油集团财务共享中心实施效果分析的案例报告》8200字.doc VIP
- 2025人教版音乐一年级下册全册教学设计教案.pdf
原创力文档

文档评论(0)