数据结构 数组和广义表幻灯片.ppt
《数据结构 数组和广义表幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据结构 数组和广义表幻灯片.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构数据结构 数组和数组和广义表广义表第1页,共27页,编辑于2022年,星期六n n一维数组具有线性表的结构,但操作简单,一般不一维数组具有线性表的结构,但操作简单,一般不进行插入和删除操作,只定义给定下标读取元素和进行插入和删除操作,只定义给定下标读取元素和修改元素的操作修改元素的操作n n二维数组中,每个数据元素对应一对数组下标,在二维数组中,每个数据元素对应一对数组下标,在行方向上和列方向上都存在一个线性关系,即存在行方向上和列方向上都存在一个线性关系,即存在两个前驱(前件)和两个后继(后件)。也可看作两个前驱(前件)和两个后继(后件)。也可看作是以线性表为数据元素的线性表。是以线
2、性表为数据元素的线性表。n nn维数组中,每个数据元素对应维数组中,每个数据元素对应n个下标,受个下标,受n个关个关系的制约,其中任一个关系都是线性关系。可看作系的制约,其中任一个关系都是线性关系。可看作是数据元素为是数据元素为n-1维数组的一维数组。维数组的一维数组。n n因此,多维数组和广义表是对线性表的扩展:线性因此,多维数组和广义表是对线性表的扩展:线性表中的数据元素本身又是一个多层次的线性表。表中的数据元素本身又是一个多层次的线性表。第2页,共27页,编辑于2022年,星期六n5.1 数组的定义n5.2 数组的顺序表示和实现n5.3 矩阵的压缩存储第3页,共27页,编辑于2022年,
3、星期六5.1 数组的定义数组的定义nADT Array数据对象:ji=0,bi-1,i=1,2,n,uD=aj1j2jn|n(0)称为数组的维数,bi是数组第i维的长度,ji是数组元素的第i维下标,aj1j2jnElemSet数据关系:R=R1,R2,RnRi=|0jkbk-1,1kn 且ki,0jibi-2,aj1jijn,aj1ji+1jnD,i=2,n第4页,共27页,编辑于2022年,星期六 基本操作:uInitArray(&A,n,bound1,boundn)uDestroyArray(&A)uValue(A,&e,index1,indexn)uAssign(&A,e,index1,
4、indexn)ADT Array第5页,共27页,编辑于2022年,星期六5.2 数组的顺序表示数组的顺序表示n n多维数组用一维的存储单元存放需约定次序。多维数组用一维的存储单元存放需约定次序。PASCAL和和C语言是以行序为主序,语言是以行序为主序,FORTRAN以以列序为主序。列序为主序。n n给定维数和各维长度,数组的存储空间确定。给定维数和各维长度,数组的存储空间确定。n n二维数组中任一元素二维数组中任一元素aij的存储地址的存储地址:uuLoc(i,j)=Loc(0,0)+(b2*i+j)*Ln nn维数组:教材维数组:教材p93uuLocLoc(j1,j2,jn)=Loc(0,
5、0,0)+j1,j2,jn)=Loc(0,0,0)+ci ij ji iuu其中其中其中其中 c cn n=L,c=L,ci-1i-1=b=bi i*c*ci i,1i,1in n第6页,共27页,编辑于2022年,星期六类型定义类型定义n#include n#define MAX_ARRAY_DIM 8ntypedef structuElemType*base;uint dim;uint*bounds;uint*constants;nArray;第7页,共27页,编辑于2022年,星期六5.3 矩阵的压缩存储矩阵的压缩存储n n矩阵一般可用二维数组实现,特殊矩阵采用压缩存储。矩阵一般可用二维
6、数组实现,特殊矩阵采用压缩存储。n n压缩存储:为多个值相同的元只分配一个存储空间,压缩存储:为多个值相同的元只分配一个存储空间,对零元不分配空间。对零元不分配空间。n n特殊矩阵:值相同的元素或者零元素在矩阵中的分布特殊矩阵:值相同的元素或者零元素在矩阵中的分布有一定规律有一定规律n n稀疏矩阵:非零元较零元少,且分布没有一定规律的稀疏矩阵:非零元较零元少,且分布没有一定规律的矩阵矩阵第8页,共27页,编辑于2022年,星期六5.3.1.特殊矩阵特殊矩阵n n对称矩阵:对称矩阵:对称矩阵:对称矩阵:aij=aji 1 aij=aji 1 i,ji,j n nuu压缩存储方法:为每一对对称元分
7、配一个存储空间压缩存储方法:为每一对对称元分配一个存储空间压缩存储方法:为每一对对称元分配一个存储空间压缩存储方法:为每一对对称元分配一个存储空间FF将下三角的元素,按行存储到一维数组将下三角的元素,按行存储到一维数组将下三角的元素,按行存储到一维数组将下三角的元素,按行存储到一维数组sasa中中中中FF共有共有共有共有n(n+1)/2n(n+1)/2个存储单元,个存储单元,个存储单元,个存储单元,FFaijaij在一维数组中的位置在一维数组中的位置在一维数组中的位置在一维数组中的位置k k为:为:为:为:i(i-1)/2+j-1 i(i-1)/2+j-1 当当当当i=j i=j 否则否则否则
8、否则 j(j-1)/2+i-1 j(j-1)/2+i-1n n三角矩阵:三角矩阵:三角矩阵:三角矩阵:上(下)三角中的元均为常数上(下)三角中的元均为常数上(下)三角中的元均为常数上(下)三角中的元均为常数c c或或或或0 0uu压缩存储方法:同上,只存储上(下)三角元素。压缩存储方法:同上,只存储上(下)三角元素。压缩存储方法:同上,只存储上(下)三角元素。压缩存储方法:同上,只存储上(下)三角元素。uu下三角:下三角:下三角:下三角:k=i*(i-1)/2+j-1k=i*(i-1)/2+j-1uu上三角:上三角:上三角:上三角:k=(2n-i)(i-1)/2+j-1 (k=(2n-i)(i
9、-1)/2+j-1 (按行按行按行按行)k=j(j-1)/2+i-1 k=j(j-1)/2+i-1(按列)(按列)(按列)(按列)uu注意:注意:注意:注意:k k从零开始,从零开始,从零开始,从零开始,i,ji,j从从从从1 1开始开始开始开始n n对角矩阵:所有非零元都集中在以主对角线为中心的带状区域对角矩阵:所有非零元都集中在以主对角线为中心的带状区域对角矩阵:所有非零元都集中在以主对角线为中心的带状区域对角矩阵:所有非零元都集中在以主对角线为中心的带状区域中。中。中。中。uu压缩方法:压缩存储到一维数组压缩方法:压缩存储到一维数组压缩方法:压缩存储到一维数组压缩方法:压缩存储到一维数组
10、sa sa 中,三对角矩阵有中,三对角矩阵有中,三对角矩阵有中,三对角矩阵有3n-23n-2个元素。个元素。个元素。个元素。uuk=2*i+j-3 k=2*i+j-3 第9页,共27页,编辑于2022年,星期六5.3.2.稀疏矩阵稀疏矩阵1.三元组的表示三元组的表示uu 稀疏矩阵可由表示非零元的三元组及其行列数稀疏矩阵可由表示非零元的三元组及其行列数稀疏矩阵可由表示非零元的三元组及其行列数稀疏矩阵可由表示非零元的三元组及其行列数 唯一确定。唯一确定。唯一确定。唯一确定。uu t t个非零元,个非零元,个非零元,个非零元,t/(m*n)t/(m*n)称为稀疏因子称为稀疏因子称为稀疏因子称为稀疏因
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 数组和广义表幻灯片 数组 广义 幻灯片
限制150内