数组和广义表——对角矩阵的顺序存储

需积分: 0 0 下载量 33 浏览量 更新于2024-08-22 收藏 666KB PPT 举报
"本资源为数据结构课件,主要讲解了对角矩阵的概念,并结合数组和广义表进行了深入探讨。课件提到了数组作为特殊线性表的特性,以及数组在顺序存储结构下的行序和列序主序排列方式。此外,还涉及到了数组的运算、数组的存储以及鞍点问题的算法设计。" 在数据结构中,对角矩阵是一种特殊的矩阵,其非对角线上的元素通常为零。课件中提到的"Loc(aij)"公式用于计算矩阵中元素aij在存储时的位置,对于行序为主序的对角矩阵,位置计算公式为Loc(aij)=Loc(a11)+2(i-1)+(j-1),这说明了矩阵元素的存储方式。 数组是一种基本的数据结构,它是由相同类型的数据元素构成的集合,这些元素在内存中通常是连续存储的。数组的定义包含了大小(维度m×n)和元素类型,数组的特点包括结构固定(一旦定义,元素个数和它们的关系不变)和数据元素同构(所有元素都是同一种类型)。数组的操作主要包括存取和修改指定下标的元素。 在数组的顺序存储结构中,有两种常见的次序约定:行序主序和列序主序。行序主序意味着元素按行优先存储,而列序主序则是按列优先。课件中给出了两种不同次序下的元素定位公式,行序主序下Loc(aij)=Loc(a11)+[(i-1)n+(j-1)]*l,列序主序下Loc(aij)=Loc(a11)+[(j-1)m+(i-1)]*l,l代表每个元素的大小。 在编程语言中,如BASIC、PASCAL、COBOL和C,通常采用行序为主序的方式来分配数组,而FORTRAN则倾向于使用列序为主序。这个差异在处理大型矩阵时可能会对程序性能产生影响。 课件还提出了一种算法问题——寻找矩阵的鞍点。鞍点是指一个元素aij,它是其所在行的最小值同时是其所在列的最大值。算法通过遍历每一行找到最小值,然后检查这个最小值是否也是其所在列的最大值,如果是,则找到了一个鞍点。 这个资源涵盖了数组的基础知识,对角矩阵的概念,以及数组存储和操作的细节,同时还提供了一个实际问题的解决思路,适合学习数据结构的学生或程序员参考。