数据结构——用C语言描述 蔡明志 电子教案 第二章 数组.pptVIP

数据结构——用C语言描述 蔡明志 电子教案 第二章 数组.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 数 组 数组 数组的表示法 上三角形和下三角形表示法 多项式表示法 魔术方阵 生命细胞游戏 数组的表示法 数组是最基本的数据结构,程序语言中一般会涉及数组。在C程序语言中常利用数组设置线性表,以线性的对应方式将元素ai置于数组的第i项位置上,若要读取ai时,可利用ai的相对地址等于数组的起始地址加i*d来求得,其中d是每一元素所占空间的大小。 线性表又称为顺序表(sequential list)或有序表(ordered list)。其特性是每一项依据它在表中的位置,可以形成一个线性的排列次序,即x[i]在x[i+1]之前。 数组的表示方法有:一维数组、二维数组、三维数组、n维数组。 一维数组 二维数组 假若有一数组是A[0…u1-1,0…u2-1],表示此数组有u1列及u2行;每一列由u2个元素组成。二维数组转化为一维数组时,对应方式有两种:一种以列为主(row-major),另一种以行为主(column-major)。 二维数组——实例 假设A[-3…5,-4…2]的起始地址A[-3,-4]=100,以列为主排列,求出A[1,1]所在的地址。(d=1) 解:m=5-(-3)+1=9,n=2-(-4)+1=7,s1=-3,s2=-4, i=1,j=1 A[i,j]= a +(i-s1)nd+(j-s2)d A[1,1]=100+(1-(-3))*7+(1-(-4)) =100+(4)*7+(5) =100+33 =133 三维数组 三维数组一般都先转化为二维数组后再对应到一维数组,对应方式也有两种:一种以列为主,另一种以行为主。 三维数组——实例 假设有一个三维数组A[-3…5,-4…2,1…5]的起始地址A[-3,-4,1]=100,以列为主排列,试求A[1,1,3]所在的地址?(d=1) 解:p=5-(-3)+1=9,q=2-(-4)+1=7,r=5-1+1,s1=3, s2=-4,s3=1,i=1,j=1,k=3 A[1,1,3]=100+(1-(-3))*7*5*1+(1-(-4))*5*1+(3- 1)*1=267 n维数组 假若有一数组为A[0…u1-1,0…u2-1,0…u3-1,...,0…un-1],表示A数组为n维数组,同样n维数组亦有两种表示方式:一种以列为主,另一种以行为主。 n维数组——实例 以列为主 若A数组以列为主,表示A数组有u1个n-1维数组,u2个n-2维数组,u3个n-3维数组,……,及un-1个1维数组。假设起始地址为a,则 A[0,0,0,...,0]的地址为a A[i1,0,0,...,0]的地址为a +i1*u2u3...un+i2*u3u4...un A[i1,i2,0,...,0]的地址为a +i1*u2u3...un +i2*u3u4...un … A[i1,i2,i3,…,in]的地址为a +i1*u2u3...un n维数组——实例(续) +i2*u3u4...u +i3*u4u5...un … +in-1*un +in 上述可归纳为: 上三角形和下三角形表示法 若一矩阵的对角线以下的元素均为0时,亦即aij=0且ij,称此矩阵为上三角形矩阵(upper triangular matrix)。反之若一矩阵的对角线以上的元素均为0,亦即aij=0且ij,则此矩阵称为下三角形矩阵(lower triangular matrix),如图所示。 多项式表示法(1) 一般多项式可以使用线性表来表示其数据结构,也可以使用链表来表示 多项式表示法(2) 两多项式A、B相加其原理很简单,比较多项式时, 有下列3种情况: (1)A指数=B指数; (2)A指数>B指数; (3)A 指数B指数。 这3种情况的运行情况,请参阅下面的程序实例。 多项式表示法——程序段 /* file name : polynominal.c Description : 多项式相加实例 利用数组表示法做多项式相加 */ #include stdio.h #define DUMMY -1 void o

您可能关注的文档

文档评论(0)

rovend + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档