第五章数组和广义表
第五章 数组和广义表
0一维数组具有线性表的结构,但操作简单,一般不 进行插入和删除操作,只定义给定下标读取元素和 修改元素的操作 0二维数组中,每个数据元素对应一对数组下标,在 行方向上和列方向上都存在一个线性关系,即存在 两个前驱(前件)和两个后继(后件)。也可看作 是以线性表为数据元素的线性表 n维数组中,每个数据元素对应n个下标,受n个关 系的制约,其中任一个关系都是线性关系。可看作 是数据元素为n-1维数组的一维数组。 0因此,多维数组和广义表是对线性表的扩展:线性 表中的数据元素本身又是一个多层次的线性表
一维数组具有线性表的结构,但操作简单,一般不 进行插入和删除操作,只定义给定下标读取元素和 修改元素的操作 二维数组中,每个数据元素对应一对数组下标,在 行方向上和列方向上都存在一个线性关系,即存在 两个前驱(前件)和两个后继(后件)。也可看作 是以线性表为数据元素的线性表。 n维数组中,每个数据元素对应n个下标,受n个关 系的制约,其中任一个关系都是线性关系。可看作 是数据元素为n-1维数组的一维数组。 因此,多维数组和广义表是对线性表的扩展:线性 表中的数据元素本身又是一个多层次的线性表
5.1数组的定义 52数组的顺序表示和实现 53矩阵的压缩存储
5.1 数组的定义 5.2 数组的顺序表示和实现 5.3 矩阵的压缩存储
51数组的定义 ADT Array 数据对象:j=0, 2 5=5.:)11 D={a12.nln(>0)称为数组的维数,b是数组第维的 长度,j是数组元素的第维下标 12.n∈ ElemNet 数据关系:R={R31,R2,…,Rn Ri=(<an…1m1-1110≤jk≤bk-1,1≤k≤n 且k≠i,0≤j≤b ai1…ji…jn,aj1…ji+1…j ∈D,i=2,…n
5.1 数组的定义 ADT Array{ 数据对象:j i=0,…,bi-1 ,i=1,2,…,n, D={aj1j2…jn| n(>0)称为数组的维数,bi是数组第i维的 长度,j i是数组元素的第i维下标,aj1j2…jn∈ElemSet} 数据关系:R={R1,R2,…,Rn} Ri={<aj1…ji…jn,aj1…ji+1…jn>| 0≤jk≤bk-1, 1≤k≤n 且k≠i,0≤ji≤bi-2, aj1…ji…jn,aj1…ji+1…jn∈D,i=2,…n}
基本操作 InitArray(&A, n, bound1, .. bound) DestroyArray (&A) Value(A, &e,index1, .. index) Assign(&A, e, index1,., index) JADT Array
基本操作: InitArray(&A,n,bound1,…,boundn) DestroyArray(&A) Value(A,&e,index1,…,indexn) Assign(&A,e,index1,…,indexn) }ADT Array