- 1、本文档共115页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 数组、 串与广义表 数据结构电子教案 第四章 数组、串与广义表 一维数组与多维数组 特殊矩阵 稀疏矩阵 字符串 广义表 一维数组 定义 数组是相同类型的数据元素的集合,而一维数组的每个数组元素是一个序对,由下标(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 个元素。 三对角矩阵的压缩存储 三对角矩阵中除主对角线及在主对角线上 下
您可能关注的文档
- C语言教程第八节.ppt
- 浅谈车辆工程CAE中拓扑优化技术应用.pdf
- 浅谈对初中数学推理及证明的认识.doc
- 浅谈多边形及多边形关系的判断.doc
- c语言课件 第7节_数组2.ppt
- C语言课件第10节_指针.ppt
- 浅谈石油化工用压缩机技术及应用前景.docx
- 浅谈数学教学及生活实践相联系的重要性.doc
- C语言数据结构树实现.pdf
- 浅析“最小表示法”思想在字符串循环同构问题中应用.doc
- 市人大主任、区委社会工作部关于2025年民主生活会“四个带头”个人对照检视材料(含反面典型案例剖析)2篇文.docx
- 市直单位领导班子2025年民主生活会“四个带头”对照检视材料与交通运输局副局长民主生活会四个方面自我批评意见32条(两篇文).docx
- 区委社会工作部2025年民主生活会“四个带头”对照查摆剖析材料(含反面典型案例剖析)与县委班子“四个带头”对照检查发言材料(含意识形态)2篇文.docx
- 2025年民主生活会、组织生活会相互批评意见建议【65条】与国有企业普通党员围绕“四个方面”组织生活会个人对照检查发言材料2篇例文.docx
- 党委副书记2025年民主生活会“四个带头”个人对照检视发言材料(含反面典型案例剖析)与市投资促进局党支部书记“四个带头”个人对照检查发言材料【含意识形态】2篇文.docx
- 2025年国有企业党委书记民主生活会四个方面自我批评意见40条与普通党员组织生会五个方面自我批评意见25条.docx
- 市民政局副书记、政数局副书记2025年民主生活会围绕“四个带头七个方面”个人对照检查发言材料【含典型事例剖析】2篇文.docx
- 生产一线党员2025年组织生活会围绕“五个方面”个人对照检查发言材料与宣传委员“四个带头”对照检查材料(含意识形态)2篇例文.docx
- 离退休党工委副书记、市工信局副书记2025年民主生活会围绕“四个带头七个方面”个人对照检查发言材料【含典型事例剖析】2篇文.docx
- 农业农村局2025年民主生活会、组织生活会意见建议38条与社会工作部民主生活会六个方面自我批评意见30条2篇文.docx
文档评论(0)