华东理工815数据结构Chap3.ppt

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华东理工815数据结构Chap3

* * #define MAXMN 500 typedef struct { Triple data[MAXSIZE + 1]; int rpos[MAXMN + 1]; int mu, nu, tu; } RLSMatrix; // 行逻辑链接顺序表类型 修改前述的稀疏矩阵的结构定义,增加一个数据成员rpos, 其值在稀疏矩阵的初始化函数中确定。 有了rpos, 给定一组下标,求矩阵的元素值: ElemType value(RLSMatrix M, int r, int c) { p = M.rpos[r]; while (M.data[p].i==r M.data[p].j c) p++; if (M.data[p].i==r M.data[p].j==c) return M.data[p].e; else return 0; } // value 1. 带行指针向量的单链表表示 每行的非零元用一个单链表存放 设置一个行指针数组,指向本行第一个非零元结点;若本行无非零元,则指针为空 稀疏矩阵的链式存储结构 单链表结点类型定义定义: ^ 1 3 5 7 3 -1 1 -1 2 -2 4 2 ^ ^ ^ ^ typedef struct node { int col; int val; struct node *link; }JD ,*TD; 稀疏矩阵的链式存储结构定义: JD linkedArray[row] ; 方便按行存取数据, 不方便按列存取数据 设行指针数组和列指针数组,分别指向每行、列第一个非零元 结点定义 tpedef struct node { int row,col,val; struct node *down, *right; }JD; row col val down right 1 1 3 4 1 8 2 2 5 2 3 4 ^ ^ ^ ^ ^ ^ ^ 2. 十字链表 行指针数组 列指针数组 * 可以证明: 从初始输入序列1, 2, ..., n 通过一个栈得到输出序列:p1, p2, ..., pn(p1, p2, ...,pn是1, 2, ..., n的一个排列)的充分必要条件是:不存在这样的i, j, k满足:ijk同时pjpkpi。 证明: 充分条件: 如果不存在这样的i, j, k满足:ijk同时pjpkpi,即对于输入序列: ..., Pj, ..., pk,...pi,...? (pjpkpi)不存在这样的输出序列: ..., Pi, ..., pj,...pk,...? (或简单地对于输入序列1,2,3,不存在输出序列3,1,2)。从中可以看出,pi后进先出,满足栈的特点,又因为pi最大(即pi在pj和pk之后进入),并且在输出序列中排在pj和pk之前。这同时说明在pk之前进入的pj不可能在pk之后出来。因为栈满足先进后出的特点。 必要条件: 如果初始输入序列1, 2, ..., n 进栈,又同时存在这样的i,j,k 满足:ijk同时pjpkpi,即有:对于输入序列: ..., Pj, ..., pk,...pi,...? (pjpkpi) 存在这样的输出序列:..., Pi, ..., pj,...pk,...? 从中可以看出,pi后进先出,满足栈的特点,又因为pi最大(即pi在pj和pk之后进入),同时看到在pk之前先进入的pj却在pk之前出来,这不满足后进先出的特点,与前面栈的假设不一致。 * * * * * * * * * * * * * * * * * * * * 1) 非零元的分布有一定规律 非零元在矩阵中的分布有一定规则 例如: 三角矩阵 对角矩阵 2) 随机稀疏矩阵 非零元在矩阵中随机出现 有两类特殊矩阵: 特殊矩阵的压缩存储 对称矩阵的压缩存储 设有一个 n?n 的矩阵 A。如果在在矩阵中,aij = aji,则此矩阵是对称矩阵。 若只保存对称矩阵的对角线和对角线以上 (下) 的元素,则称此为对称矩阵的压缩存储。 若只存对角线及对角线以上的元素,称为上三角矩阵;若只存对角线或对角线以下的元素,称之为下三角矩阵。 下三角矩阵 上三角矩阵 把它们按行存放于一个一维数组 B 中,称之为对称矩阵 A 的压缩存储方式。 数组 B 共有 n+(n-1)+???+1 = n*(n+1)/2 个元素。

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档