7第四章--数组集合和矩阵.ppt

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数组、集合和矩阵 4.1 数组 4.2 特殊矩阵 4.3 稀疏矩阵 4.4 集合 4.1 数组 4.1.1 数组的定义 数组是n(n≥1)个相同数据类型的数据元素a0,a1,a2,...,an-1构成的占用一块地址连续的内存单元的有限集合。 4.1.3 数组抽象数据类型 数据集合 数组的数据集合可以表示为a0, a1, a2, ..., an-1,且限定数组元素必须存储在地址连续的内存单元中。 操作集合: (1)分配内存空间acclocate():为数组分配用户所需的内存空间。 (2)取数组长度getLength():取数组的长度。 (3)存数组元素set(i, x):把数据元素x存入下标为i的数组中。其约束条件为:0≤i≤getLength()-1。 (4)取数组元素get(i):取出数组中下标为i的数据元素。其约束条件为:0≤i≤getLength()-1。 4.2 特殊矩阵 特殊矩阵是指这样一类矩阵,其中有许多值相同的元素或有许多零元素,且值相同的元素或零元素的分布有一定规律。 一般采用二维数组来存储矩阵元素。但是,对于特殊矩阵,可以通过找出矩阵中所有值相同元素的数学映射公式,只存储相同元素的一个副本,从而达到压缩存储数据量的目的。 2 采用不等长的二维数组 C#语言支持不等长的二维数组,对于n阶对称矩阵,也可以通过只申请存储下三角(或上三角)矩阵元素所需的二维数组,来达到压缩存储的目的。 不等长的二维数组结构 4.3 稀疏矩阵 对一个m×n的矩阵,设s为矩阵元素个数的总和,有s=m*n,设t为矩阵中非零元素个数的总和,满足t<<s的矩阵称作稀疏矩阵。符号“<<”读作小于小于。简单说,稀疏矩阵就是非零元素个数远远小于元素个数的矩阵。相对于稀疏矩阵来说,一个不稀疏的矩阵也称作稠密矩阵。 稀疏矩阵的压缩存储方法,是只存储矩阵中的非零元素。 稀疏矩阵中每个非零元素及其对应的行下标和列下标构成一个三元组,稀疏矩阵中所有这样的三元组构成一个以三元组为数据元素的线性表。 三元组十字链表 4.4 集合 4.4.1 集合的概念 集合(Set)是具有某种相似特性的事物的全体。换一种说法,也可以说,集合是某种具有相同数据类型的数据元素全体。 如果集合A中的所有数据元素都在集合B中,则说集合B包含集合A。 集合A和集合B相等当且仅当集合A包含集合B ,且集合B也包含集合A。 集合的运算主要有三种:两个集合的并A∪B、两个集合的交A∩B、两个集合的差A-B。 没有一个数据元素的集合称做空集合。 数据集合 数据元素集合可以表示为{a0, a1, a2, ..., an-1},每个数据元素的数据类型可以是任意的类类型。 操作集合 (1)添加add(obj):在集合中添加数据元素obj。 (2)删除remove(obj):删除集合中的数据元素obj。 (3)属于contain(obj):数据元素obj是否属于集合。是则返回true,否则返回false。 (4)包含include(otherSet):当前对象集合是否包含集合otherSet。是则返回true,否则返回false。 (5)相等eqauls(otherSet):当前对象集合是否和集合otherSet相等。是则返回true,否则返回false。 (6)数据元素个数size():返回集合中的数据元素个数。 (7)集合空否isEmpty():若集合空返回true,否则返回false。 集合通常用一对花括号表示: mySet1={1,3,5,7,9} mySet2={1,3,5} mySet3={} 如果一个数据元素x在一个集合A中,则说数据元素x属于集合A;如果一个数据元素x不在一个集合A中,就说数据元素x不属于集合A。 例如,数据元素3属于集合mySet1,因为数据元素3在集合mySet1中;数据元素4不属于集合mySet1,因为数据元素4不在集合mySet1中。 4.4.2 集合抽象数据类型 问题:数组与线性表的区别与联系  相同之处:   它们都是若干个相同数据类型的数据元素a0,a1,a2,…,an-1构成的有

文档评论(0)

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

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

1亿VIP精品文档

相关文档