数据结构讲义:压缩存储对称矩阵

需积分: 10 3 下载量 60 浏览量 更新于2024-07-13 收藏 705KB PPT 举报
"这篇讲义主要讨论了C语言中的数据结构,特别是关于对称矩阵的压缩存储方法。讲义中提到,对称矩阵的元素aij可以通过公式LOC(aij)=LOC(sa[0])+[I*(I+1)/2+J]*d计算其在存储数组sa中的位置。这一方法使得对称矩阵可以有效地存储,节省空间。同时,讲义还涵盖了数据结构的基本概念,如数据、数据结构、抽象数据类型和算法等相关知识。" 正文: 在C语言的数据结构中,对称矩阵的压缩存储是一个重要的概念,特别是在处理大量数据时可以提高存储效率。讲义中提到的计算公式LOC(aij)=LOC(sa[0])+[I*(I+1)/2+J]*d,用于确定对称矩阵中的元素aij在存储数组sa中的地址。这里的I和J是矩阵的行和列下标,d是数组元素的大小,sa[0]是数组的起始地址。这个公式基于对称矩阵的特性,即对角线以下的元素与其对角线上的对应元素相等,因此只需存储一半的元素。 数据结构是计算机科学中的核心概念,它研究的是数据的组织方式以及数据之间的关系。在本讲义中,数据结构被引申为如何有效地存储和操作数据,如一维的数组、二维数组、表结构和向量等。例如,电话号码查询系统可以通过不同数据结构实现,如二维数组、链表或哈希表,每种结构都有其特定的查找和操作算法,效率也因此有所不同。 此外,讲义还介绍了抽象数据类型(Abstract Data Type, ADT),这是一种逻辑上的数据类型,它包含了数据和操作数据的方法,但不涉及具体的实现细节。ADT的表示与实现是数据结构研究的重要部分,因为它允许我们独立于底层存储机制来考虑数据的处理。 算法是解决问题的步骤集合,算法设计包括选择合适的数据结构和算法效率的衡量。在1.4节中,讨论了算法的时间复杂度和空间复杂度,这是评估算法效率的关键指标。例如,对于电话号码查询系统,如果采用顺序搜索,时间复杂度为O(n),而如果使用哈希表,时间复杂度可以降低到O(1)。 讲义还举例说明了数据结构在实际问题中的应用,如图书馆的书目检索系统、教师资料档案管理系统和多叉路口交通灯的管理问题,这些例子突显了数据结构选择对解决实际问题的重要性。 这篇讲义深入浅出地阐述了C语言数据结构的基础知识,特别是对称矩阵的压缩存储技巧,同时也强调了数据结构和算法在解决实际问题中的关键作用。学习和理解这些内容对于编写高效、优化的C语言程序至关重要。