网站大量收购独家精品文档,联系QQ:2885784924

第四章 数据结构——数组.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 数组 数组可以看成是一种特殊的线性表,即线性表中数据元素本身也是一个线性表 3.1 数组的定义和特点 定义 3.2 数组的顺序存储结构 次序约定 以行序为主序 以列序为主序 三角矩阵 稀疏矩阵的压缩存储方法 顺序存储结构 三元组表 带辅助行向量的二元组表 求转置矩阵 问题描述:已知一个稀疏矩阵的三元组表,求该矩阵转置矩阵的三元组表 问题分析 一般矩阵转置算法: 十字链表 设行指针数组和列指针数组,分别指向每行、列第一个非零元 结点定义 Typdef struct node { int tag; union { int data;//tag=0时,存入数据 struct node *hlink;//tag=1时存放指针 }d; struct node *tlink;//指向本层下一个结点 }GLNode; 计算个数的算法 P53 * 数组特点 数组结构固定 数据元素同构 数组运算 给定一组下标,存取相应的数据元素 给定一组下标,修改数据元素的值 ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. Loc( aij)=Loc(a11)+[(i-1)n+(j-1)]*l ??按行序为主序存放 amn …….. am2 am1 ………. a2n …….. a22 a21 a1n ……. a12 a11 0 1 n-1 m*n-1 n ??按列序为主序存放 0 1 m-1 m*n-1 m amn …….. a2n a1n ………. am2 …….. a22 a12 am1 ……. a21 a11 a11 a12 …….. a1n a21 a22 …….. a2n am1 am2 …….. amn …………………. Loc(aij)=Loc(a11)+[(j-1)m+(i-1)]*l 1. 一维数组寻址公式 对于一维数组,若其下标的下界为LB,上界为UB,第一元素(其下标为LB)的地址为Loc(LB),下标为i的数组元素A[i]的地址为Loc(i),则计算Loc(i)的寻址公式为: Loc(i)=Loc(LB)+(i-LB)*s 在C语言中,数组下标的下界为0,则数组中任意一元素A[i]的寻址公式为: Loc(i)=Loc(0)+i*s 0≤i≤n-1 2. 二维数组寻址公式 在C语言中,采用矩阵元素以行为主存储,即同一行的元素连续存放,存储完一行再存储下一行。 设二维数组A[m][n],m、n分别表示数组的行和列,用Loc(i,j)表示数组元素A[i][j]的地址,每个单元占用s个存储单元,则寻址公式为: Loc(i,j)=Loc(0,0)+(i*n+j)*s 0i≤m-1, 0j≤n-1 定义一A[2][3]数组,对应的矩阵如下: 数组元素A[1][2],其下标i=1,j=2,故它前面已经有i=1行,每行有3个元素,另外本行有j=2个元素,所以在元素A[1][2]之前,本数组已有5个元素。 a11 0 0 ……..

文档评论(0)

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

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

1亿VIP精品文档

相关文档