数据结构第五章数组和广义表幻灯片.ppt
《数据结构第五章数组和广义表幻灯片.ppt》由会员分享,可在线阅读,更多相关《数据结构第五章数组和广义表幻灯片.ppt(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构第五章数组和数据结构第五章数组和广义表广义表第1页,共48页,编辑于2022年,星期六第五章第五章数组和广义表数组和广义表5.1数组的定义数组的定义5.2数组的顺序存储结构数组的顺序存储结构5.3矩阵的压缩存储矩阵的压缩存储5.4广义表的定义广义表的定义5.5 5.5 广义表的存储结构广义表的存储结构第2页,共48页,编辑于2022年,星期六3 前前4 4章介章介绍的数据的数据结构共同特点:构共同特点:都属于都属于线性数据性数据结构;构;每种数据每种数据结构中的数据元素,都作构中的数据元素,都作为原子数据,原子数据,不再不再进行分解;行分解;本章本章讨论的两种数据的两种数据结构:数构:
2、数组和广和广义表,其共同特点表,其共同特点是:是:从从逻辑结构上看它构上看它们,可看成是,可看成是线性性结构的一种构的一种扩展;展;数据元素本身也是一个数据数据元素本身也是一个数据结构;构;第五章第五章数组和广义表数组和广义表第3页,共48页,编辑于2022年,星期六4 一一、数数组的定的定义(1)(1)数数组的抽象数据的抽象数据类型定型定义 ADT Array ADT Array 数据数据对象:象:D aj1,j2,ji,jn|ji=0,bi-1,i=1,2,n(n0)称为数组的维数,bi是数组第i维的长度,ji是数组元素的第i维下标 5 51 1 数组的定义数组的定义 数据关系:数据关系:
3、R R1,R2,Rn 第4页,共48页,编辑于2022年,星期六6 (2)(2)二二维数数组的解的解释a00 a01 a0 n-1 a10 a11 a1 n-1 am-1 0 am-1 1 am-1 n-1 二二维数数组中的每个元素都受两个中的每个元素都受两个线性关系的性关系的约束,即行关系和列关系,在束,即行关系和列关系,在每个关系中,每个元素每个关系中,每个元素a aijij都有且都有且仅有一个有一个直接前直接前趋,都有且,都有且仅有一个直接后有一个直接后继。在行关系中在行关系中 aijaij直接前趋是直接前趋是 aij-1 aijaij-1 aij直接后继是直接后继是 aij+1aij+
4、1在列关系中在列关系中 a aijij直接前趋是直接前趋是 a ai-1j i-1j a aijij直接后继是直接后继是 a ai+1ji+1j第6页,共48页,编辑于2022年,星期六7 A=(A=(0 0,1 1 ,2 2,3 3,4 4,p)p)p p=m-1=m-1 或或 n-1 n-1 其中每一个数据元素其中每一个数据元素 j j 是一个列向量的是一个列向量的线性表性表 j j=(a a0j 0j,a a1j 1j ,a,a2j 2j,a a3j 3j,a,am-1j m-1j)0 0jjn-1n-1 二二维数数组也可看作也可看作这样的的线性表:其性表:其每一个数据元每一个数据元素也
5、是一个素也是一个线性表。性表。a00 a01 a0 n-1 a10 a11 a1 n-1 am-1 0 am-1 1 am-1 n-1A Am m n=a00 a10 am-1 0A Am m n=第7页,共48页,编辑于2022年,星期六8 或或 i i 是一个行向量的是一个行向量的线性表性表 i i=(a ai0 i0 ,a,ai1 i1 ,a,ai2 i2,a ai3 i3,a,ain-1 in-1)0 0i im-1 m-1 A Am m n n=(a(a00 00 a a0101 a a0 n-1 0 n-1),(a),(a10 10 a a1111 a a1 n-11 n-1),(
6、a),(am-1 0 m-1 0 a am-1 1m-1 1 a am-1 n-1m-1 n-1)(3)(3)C C语言中二言中二维数数组类型的一种定型的一种定义 typedef elemtype Array2mn;typedef elemtype Array2mn;等价于等价于 typedef elemtype Array1n;typedef elemtype Array1n;typedef Array1 Array2m;typedef Array1 Array2m;同理,可以用同理,可以用 n-1 n-1 维数数组的数据的数据类型来定型来定义 n n 维数数组。第8页,共48页,编辑于20
7、22年,星期六9一、一、数组的顺序表示和实现数组的顺序表示和实现(1)(1)类型特点类型特点 只有引用型操作,一般不作插入或删除操作;数组是多维的结构,而存储空间是一个一维的结构。(2)(2)两个两个策略策略-两种顺序映象的方式两种顺序映象的方式 以行序为主序以行序为主序(低下标优先低下标优先);以列序为主序以列序为主序(高下标优先高下标优先)。5 52 2 数组的顺序存贮结构数组的顺序存贮结构第9页,共48页,编辑于2022年,星期六10a00 a01 a0 n-1 a10 a11 a1 n-1 am-1 0 am-1 1 am-1 n-1A Am m n=以行以行为主序的方式:主序的方式:
8、a00 a01 a0n-1 a10 a11 a1n-1 a(m-1)n-1 amn-10 1 n-1 n n+1 2n-1 mn-1第10页,共48页,编辑于2022年,星期六110 1 m-1 m m+1 2m-1 nm-1a00 a10 am-10 a01 a11 am-11 a0n-1 a1n-1 amn-1以列以列为主序的方式:主序的方式:第11页,共48页,编辑于2022年,星期六1212(4)(4)存存储位置的公式位置的公式 假假设二二维数数组A A每个元素每个元素占用占用L个存个存储单元,若以行序元,若以行序为主序的主序的方式存方式存储二二维数数组,二二维数数组A A中任一元素中
9、任一元素a ai,ji,j的存的存储位置位置为:LOC(i,j)=LOC(0,0)+(b2ij)L 三三维数数组A A中任一元素中任一元素a ai,j,ki,j,k的存的存储位置位置为:LOC(i,j,k)=LOC(0,0,0)+(bLOC(i,j,k)=LOC(0,0,0)+(b2 2bb3 3iib b3 3j+k)Lj+k)L若以列序为主序的方式存储二维数组,则元素若以列序为主序的方式存储二维数组,则元素a aijij的存储位置可由的存储位置可由下式确定:下式确定:Loc(a aijij)=Loc(a a0000)+(b1 j+i)L第12页,共48页,编辑于2022年,星期六1313三
10、三维二二维一一维123123412a111a121a131a141a211a231a241a221a331a341a321a311a142a132a122a112a242a342第13页,共48页,编辑于2022年,星期六151515(5)(5)结构定构定义#define maxarraydim 8 define maxarraydim 8 typedef struct typedef struct elemtype*base;/elemtype*base;/数数组元素基址元素基址 int dim;/int dim;/数数组维数数 int*bounds;/int*bounds;/数数组维界基址
11、界基址(各各维容量容量)int*constants;/int*constants;/数数组映象函数常量基址映象函数常量基址 array;array;第15页,共48页,编辑于2022年,星期六5.3矩阵的压缩存储矩阵的压缩存储 一一 特殊矩阵的压缩存储特殊矩阵的压缩存储二二 稀疏矩阵的压缩存储稀疏矩阵的压缩存储 1 1 三元组表的存储结构三元组表的存储结构 2 2 十字链表的存储结构十字链表的存储结构第16页,共48页,编辑于2022年,星期六(1)(1)矩矩阵压缩存存储的必要性的必要性 矩阵是许多科学与工程计算问题中常常涉及到的一种运算对象。通常程序员是用二维数组存储矩阵。由于这种存储方法可
12、以随机地访问矩阵的每个元素,因而能较为容易地实现矩阵的各种运算。应用中常遇到一些阶数很高的矩阵,矩阵中有许多值相同的元素或零元素。二维数组存储矩阵会浪费很多的存储单元。例如,设一个1000 1000的矩阵中有800个非零元素,若用二维数组存储需要106个存储单元。因此,需要使用高效的存储方法,减少数据的存储量,即对原矩阵,根据数据分布特征进行压缩存存储。1 1、矩阵的压缩存储矩阵的压缩存储5 53 3 矩阵的压缩存储矩阵的压缩存储第17页,共48页,编辑于2022年,星期六(2)(2)压缩存存储的有关概念的有关概念 压缩存存储:为多个多个值相同的元素分配一个存相同的元素分配一个存储空空间,对零
13、元零元不分配空不分配空间。特殊矩特殊矩阵:值相同的元素或零元素在矩相同的元素或零元素在矩阵中的分布有一定中的分布有一定规律。律。稀疏矩稀疏矩阵:值相同的元素或者零元素在矩相同的元素或者零元素在矩阵中的分布无中的分布无规律。律。第18页,共48页,编辑于2022年,星期六a11 a11 a1na21 a22 a2nan1 an2 anna11 a21 a22 a31 a32 a33 an1 an2 an3 ann 压缩存存储方法方法 为每每一一对对称称元元分分配配一一个个存存储空空间,则可可将将n n2 2个个元元压缩存存储到到n(n+1)/2n(n+1)/2个元的空个元的空间中。中。(3)(3
14、)特殊矩特殊矩阵 概概念念:若若n n阶矩矩阵 A A 中中的的元元满足足:a aijij=a=ajiji 1 1i,ji,jn n,则称称为n n 阶对称矩称矩阵。a11a21 a22 a31 a32 a33 an1 an2 annk=0 1 2 3 4 5 n(n+1)/2-1 第19页,共48页,编辑于2022年,星期六 下下标对应关系关系k=k=当 i j当当 i i j j 矩矩阵的上的上(下下)三角三角(不含不含对角角线)中的元均中的元均为常数常数C C或或0 0的的n n阶矩矩阵(三角三角矩矩阵),其存,其存储方法相同。方法相同。例如,a a32 32 在 sa 中的存储位置是:
15、k=3*(3-1)/2+2-1=4 sa4=a a32 32 (4)(4)对角矩角矩阵 概念:概念:非零元都集中在以主非零元都集中在以主对角角线为中心的中心的带状区域中。状区域中。存存储:这种种矩矩阵可可以以某某个个原原则(以以行行为主主,或或以以对角角线的的顺序序)将将其其压缩存存储到一到一维数数组上。上。第20页,共48页,编辑于2022年,星期六 压缩存储的对称矩阵的取值算法压缩存储的对称矩阵的取值算法intget_M(inti,intj)if(i=j)return(sai*(i+1)/2+j)elsereturn(saj*(j+1)/2+i);压缩存储的对称矩阵的压缩存储的对称矩阵的赋
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 第五 数组 广义 幻灯片
限制150内