计算机科学与技术 ( 专升本 ) 数据结构期末 考试复习资料 古月编辑整理
祝愿大家考试考出自己理想的成绩 , 本资料仅供参考,谢谢!
6
三角矩阵中的重复元素 c 可以共享一个存储空间,其余的元素有 n(n+1)/2 个,因此可压缩存储到向 量
sa[0..n(n+1)/2] 中, c 存放在向量的最后一个分量中,排列时以行序为主。 a
和 sa[k] 的对应关系是:
下三角矩阵:
上三角矩阵:
5 .稀疏矩阵及其压缩存储的特点
设 m*n 矩阵中有 t 个非零元素且 t<<m*n ,这样的矩阵称为稀疏矩阵。稀疏矩阵的压缩存储采取如下方法
:
将非零元素所在的行、列以及它的值构成一个三元组( i, j , v ) ,然后再按某种规律存储这些三元组,这种方
法可以节约存储空间。
6 .稀疏矩阵压缩存储的顺序存储方式
以顺序方式组织存储时常用的方法是三元组顺序表,方法是:将三元组按行优先的顺序,同一行中列号从
小到大的规律排列成一个线性表,采用顺序存储方法存储该表。
7 .稀疏矩阵压缩存储的链式存储方式
稀疏矩阵压缩存储的链式存储方式,即十字链表。当矩阵中非零元素的个数和位置在使用中经常发生变化
时,不宜采用顺序存储结构,可采用十字链表进行存储。其结点结构如图所示。
row col v
Down right
8 .广义表(列表)的定义、术语及它与线性表的关系
广义表 ( Generalized Lists ) 是 n ( n ≥ 0 ) 个数据元素 a1, a2 , …
ai,
… , an 的有序序列 , 一般记作 : L s = ( a1,
a2 , … ai, … , an ) 。
其中: Ls 是广义表的名称, n 是它的长度,每个 ai ( 1 ≤ i ≤ n )是 Ls 的成员,它可以是单个元素,也可以
是一个广义表,分别称为广义表 Ls 的单元素和子表。当广义表 Ls 非空时,称第一个元素 a1 为 Ls 的表头
( head ) ,称其余元素组成的表( a2 , … ,
ai
, … , an )为 Ls 的表尾( tail ) 。
表的深度:表中元素的最深嵌套层数。
广义表与线性表的关系 : 当广义表 Ls 中的元素全部是原子时 , 广义表即为线性表 。 因此 , 可认为线性表是
广义表的特例,广义表是线性表的推广。
9 .广义表的三个重要性质
( 1 ) 广义表是一种多层次的数据结构 。 广义表的元素可以是单元素 , 也可以是子表 , 而子表的元素还可以
是子表 , … 。
( 2 )广义表可以是递归的表。广义表的定义并没有限制元素的递归,即广义表也可以是其自身的子表 。 例
如表 E 就是一个递归的表。
( 3 )广义表可以为其他表所共享。例如,表 A 、表 B 、表 C 是表 D 的共享子表。在 D 中可以不必列出子
表的值,而用子表的名称来引用。
10 .广义表的存储结构
k=
i*( i- 1)/2+j-1 当 i ≥ j
n*(n+1)/2-1 当 i<j
k=
(i-1)*(2n-i+2)/2+j-i 当 i ≤ j
n*(n+1)/2 当 i>j
图 4-2 十字链表的结点结构