数据结构第5章(1).ppt

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

数组的定义以及如何理解它们是线性表的扩展(识记)数组除了初始化和销毁之外只能进行存取和修改操作(识记)多维数组中某数组元素的position求解(不管是按行存储和按列存储):一般是给出数组元素的首元素地址和每个元素占用的地址空间并组给出多维数组的维数,然后要求求出该数组中的某个元素所在的位置(掌握)特殊矩阵和稀疏矩阵的定义(了解)特殊矩阵的压缩,包括对称矩阵,上(下)三角矩阵,对角矩阵,具有某种特点的稀疏矩阵等(掌握)稀疏矩阵的三种不同实现方式:三元组,带辅助行向量的二元组,十字链表存储(理解)对稀疏矩阵各种实现方式的转置和相乘运算的操作及复杂性分析(理解)

5.1数组的定义和运算数组和广义表可看成是一种特殊的线性表,其特殊在于:表中的数据元素本身也是一种线性表。前面介绍了一种常用的简单的数据结构---线性表(包括栈、队和串)。在线性表中每个元素由一个下标对应的一个值组成,例如(a1,a2,…,an),其中i对应一个值ai。可以看出这种结构中的元素是一个无结构的数据元素。现在我们将线性表推广,每个元素由一组下标对应的一个值组成,例如,a11a12…a1na21a22…a2n…………am1am2…amnm×n矩阵,可以看作是一个二维数组。其中下标(i,j)对应一个值A(i,j)。数组是n(n>1)个相同类型数据元素a0,a1,…,an-1构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。数组的定义类似于采用顺序存储结构的线性表,是线性表在维数上的扩张,也就是线性表中的元素又是一个线性表。设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为()。A.BA+141B.BA+180C.BA+222D.BA+225StatusFastTranSMatrix(TSMatrixA,TSMatrixB){B.rows=A.cols;B.cols=A.rows;B.nums=A.nums;if(B.nums){for(col=1;col=A.nums;++col)num[col]=0;for(t=1;t=A.nums;++t)++num[A.data[t].j];cpot[1]=1;for(col=2;col=A.cols;++col)cpot[col]=cpot[col-1]+num[col-1];for(p=1;p=A.nums;++p){col=A.data[p].j;q=cpot[col];B.data[q].i=A.data[p].j;B.data[q].j=A.data[p].i;B.data[q].e=A.data[p].e;++cpot[col];}}returnOK;}1.广义表的定义(列表)广义表是线性表的推广,是由零个或多个单元素或子表所组成的有限序列。LS=(a1,a2,…,ai,…,an)ai:是单个数据元素,则ai是广义表的原子;如果ai是一个广义表,则ai是广义表的子表。规定用小写字母表示原子,用大写字母表示广义表的表名。广义表与线性表的区别:线性表的成份都是结构上不可分的单个数据元素,而广义表的成份即可以是单元素,也可以是有结构的表,其定义是递归的定义。广义表的长度:广义表中所含元素的个数n,n≥0。广义表的深度:广义表展开后所含的括号的最大层数。(广义表中括号嵌套的最大次数,广义表中括弧的重数)D=()空表,长度为0,深度为1。A=(a,(b,c))长度为2,第一个元素为原子a,第二个元素为子表(b,c),深度为2。B=(A,A,D)长度为3,其前两个元素为表

文档评论(0)

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

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

1亿VIP精品文档

相关文档