- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                第04章 数组、串与广义表
                    第四章   数组、       串与广义表 数据结构电子教案 第四章 数组、串与广义表 一维数组与多维数组 特殊矩阵 稀疏矩阵  字符串 广义表 一维数组 定义 	数组是相同类型的数据元素的集合,而一维数组的每个数组元素是一个序对,由下标(index)和值(value)组成。   一维数组的示例    在高级语言中的一维数组只能按元素的下标直接存取数组元素的值。 一维数组的定义和初始化 #include iostream.h main ( ) {     int a[3] = { 3, 5, 7 }, *elem, i; 	//静态数组     for (i = 0; i  3; i++)          cout  a[i]  endl;                    elem = new int[3];	 		//动态数组     for (i = 0; i  3; i++)          cin  elem[i];     for (i = 0; i  3; i++)        { cout  *elem  endl;  elem++; }  }	 多维数组 行向量  下标 i                    页向量  下标 i 列向量  下标 j                    行向量  下标 j                                             列向量  下标 k 数组的连续存储方式 一维数组 二维数组 一维数组常被称为向量(Vector)。 二维数组 A[m][n] 可看成是由 m 个行向量组成的向量,也可看成是由 n 个列向量组成的向量。 一个二维数组类型可以定义为其分量类型为一维数组类型的一维数组类型:          typedef T array2[m][n];      //T为元素类型    等价于:          typedef T array1[n];            //行向量类型          typedef array1 array2[m];    //二维数组类型 同理,一个三维数组类型可以定义为其数据元素为二维数组类型的一维数组类型。 静态定义的数组,其维数和维界不再改变,在编译时静态分配存储空间。一旦数组空间用完则不能扩充。 动态定义的数组,其维界不在说明语句中显式定义,而是在程序运行中创建数组对象时通过 new 动态分配和初始化,在对象销毁时通过 delete 动态释放。 用一维内存来表示多维数组,就必须按某种次序将数组元素排列到一个序列中。 二维数组的动态定义和初始化 #include iostream.h ………… int **A; int row =  3, col = 3;   int i, j;           A = new int *[row]; for (i = 0; i  row; i++)     A[i] = new int [col]; for (i = 0; i  row; i++)     for (j = 0; j  col; j++)  cin  A[i][j]; …………     三维数组 各维元素个数为  m1, m2, m3 下标为 i1, i2, i3的数组元素的存储地址: 		(按页/行/列存放) 		LOC ( i1, i2, i3 ) = a +  			 ( i1* m2 * m3 + i2* m3 + i3 ) * l   n 维数组 各维元素个数为  m1, m2, m3, …, mn 下标为 i1, i2, i3, …, in 的数组元素的存储地址: 		  LOC ( i1, i2, …, in ) = a +                ( i1*m2*m3*…*mn + i2*m3*m4*…*mn+                   + ……+ in-1*mn + in ) * l  特殊矩阵 特殊矩阵是指非零元素或零元素的分布有一定规律的矩阵。 特殊矩阵的压缩存储主要是针对阶数很高的特殊矩阵。为节省存储空间,对可以不存储的元素,如零元素或对称元素,不再存储。 对称矩阵 三对角矩阵 对称矩阵的压缩存储 设有一个 n?n 的对称矩阵 A。 为节约存储,只存对角线及对角线以上的元素,或者只存对角线或对角线以下的元素。前者称为上三角矩阵,后者称为下三角矩阵。 把它们按行存放于一个一维数组 B 中,称之为对称矩阵 A 的压缩存储方式。 数组 B 共有 n + ( n - 1 ) + ??? + 1 =               n*(n+1)/2 个元素。          三对角矩阵的压缩存储 三对角矩阵中除主对角线及在主对角线上 下
                您可能关注的文档
最近下载
- 测绘法规与工程管理(第2版)(下篇,共上下2篇).pptx VIP
- 高空作业平台直臂车安全技术交底模板.docx VIP
- 2024年连云港专业技术人员继续教育《饮食、运动和健康的关系》92分(试卷).docx VIP
- 2024《唯品会顾客满意度问题及完善对策研究实证分析》17000字.docx
- (正式版)DB42∕T 1343-2018 《顶管法管道穿越工程技术规程》.docx VIP
- 中国古代民间故事《梁山伯与祝英台》PPT课件.pptx VIP
- 《公路边坡柔性防护网技术规范》.pdf VIP
- 除尘器日常运行清理记录表.docx VIP
- 上海2022年7月建设工程信息价.xls VIP
- 《测绘法规与工程管理(第2版)》课件 西南 第12--14章 测绘安全生产管理、 测绘技术总结、 测绘成果质量检查验收.ppt
 原创力文档
原创力文档 
                         
                                    

文档评论(0)