C版数据结构解析:数组与广义表

需积分: 10 0 下载量 188 浏览量 更新于2024-08-20 收藏 740KB PPT 举报
"本章主要介绍了数据结构中的数组和广义表相关知识,包括数组的逻辑结构特征、存储方式及寻址方法、特殊矩阵和稀疏矩阵的压缩存储,以及广义表的基本概念和存储结构。" 在计算机科学中,数组是一种基本的数据结构,它由相同类型的数据元素构成的有序集合。数组的每个元素都有一个唯一的标识,通常用下标表示,这些下标是线性的,如一维数组的一般形式为a[0], a[1], ..., a[n-1]。数组的特点是其元素在同一类型下,且在内存中占据连续的位置,这使得访问数组元素变得高效,因为通过下标可以直接计算出元素的内存地址。 多维数组是数组的扩展,它可以是二维、三维或更高维度,常用于表示矩阵或其他需要多方向索引的数据。例如,二维数组可以看作是由多个一维数组(行)组成,每个行又包含若干个元素。在二维数组A中,元素A[i][j]表示第i行第j列的元素。多维数组的元素可以通过一组下标来唯一确定,如A[i][j][k]表示的是一个三维数组中的元素。 对于特殊矩阵,比如稀疏矩阵(大部分元素为零的矩阵),为了节省存储空间,通常会使用压缩存储方法,如链式存储或二维数组的压缩存储。链式存储通过链表仅存储非零元素及其对应的行和列信息,而二维数组压缩存储则通过三元组数组(行号,列号,值)来表示。 数组的基本操作主要包括存取和修改,由于数组的静态特性,即大小在创建后不可变,因此没有插入和删除操作。存取操作是通过下标直接定位元素,修改则是改变特定下标对应的元素值。由于元素在内存中连续存放,数组的存取速度通常很快,适合于需要快速访问数据的场景。 广义表是一种更灵活的数据结构,它是线性表的推广,其中的数据元素可以是任意类型,甚至可以是其他线性表。广义表的存储结构通常采用链表实现,允许元素有不同类型的子表,这使得广义表能表示复杂的数据结构,如树或图。 本章的学习重点是理解数组和广义表的逻辑结构与存储方式,掌握特殊矩阵的压缩存储技巧,以及如何在数组中执行基本操作。这些基础知识对理解和应用更复杂的数据结构和算法至关重要,是计算机科学基础教育的重要组成部分。