数据结构课程的内容第5章数组和广义表(Arrays&Lists)①元素的值并非原子类型,可以再分解,表中元素也是一个线性表(即广义的线性表)
②所有数据元素仍属同一数据类型
1数组的定义5
2数组的顺序表示和实现5
3矩阵的压缩存储5
4广义表的定义5
5广义表的存储结构数组和广义表的特点:一种特殊的线性表5
1数组的定义数组:由一组名字相同、下标不同的变量构成注意:本章所讨论的数组与高级语言中的数组有所区别:高级语言中的数组是顺序结构;而本章的数组既可以是顺序的,也可以是链式结构,用户可根据需要选择
因为:①数组中各元素具有统一的类型;②数组元素的下标一般具有固定的上界和下界,即数组一旦被定义,它的维数和维界就不再改变
③数组的基本操作比较简单,除了结构的初始化和销毁之外,只有存取元素和修改元素值的操作
讨论:“数组的处理比其它复杂的结构要简单”,对吗
二维数*4组的特点:一维数组的特点:1个下标,ai是ai+1的直接前驱2个下标,每个元素ai,j受到两个关系(行关系和列关系)的约束:一个m×n的二维数组可以看成是m行的一维数组,或者n列的一维数组
N维数组的特点:n个下标,每个元素受到n个关系约束一个n维数组可以看成是由若干个n-1维数组组成的线性表
a11a12…a1na21a22…a2n…………am1am2…amnAmn=N维数组的数据类型定义n_ARRAY=(D,R)其中:Ri={|aj1,j2,…ji…jn,aj1,j2,…ji+1…jnD}数据关系:R={R1,R2,…
Rn}数据对象:D={aj1,j2…jn|ji为数组元素的第i维下标,aj1,j2…jnElemset}数组的抽象数据类型定义略,参见教材P90构造数组、销毁数组、读数组元素、写数组元素基本操作:5
2数组的顺序存储表示和实现问题:计算机的存储结构是一维的,而数组一般是多维的