C语言数据结构教程:数组的定义与存储
需积分: 9 198 浏览量
更新于2024-07-28
收藏 1.08MB PPT 举报
"这篇教程是关于数据结构的,专注于C语言中的数组部分,出自厦门大学软件专业教程。教程涵盖了数组的定义、顺序表示与实现,以及矩阵的压缩存储方法,特别是针对特殊矩阵的下标变换和稀疏矩阵的压缩存储。"
在数据结构的学习中,数组是一个基础且重要的概念。数组是一种数据结构,它包含相同类型的数据元素集合,这些元素可以通过一个唯一的标识符——下标来访问。在C语言中,数组定义如下:
1. 一维数组的定义形式为 `ElemType A[n]`,其中 `ElemType` 是数组元素的数据类型,`n` 是数组的大小,表示有 `n` 个连续存储的元素。
2. 二维数组的定义形式为 `ElemType A[m][n]`,表示一个由 `m` 行 `n` 列组成的数组。
3. 更高维度的数组可以通过嵌套定义,例如 `ElemType A[n1][n2]...[nk]`,形成一个 `k` 维数组。
数组可以视为线性表,其中一维数组的每个元素相当于线性表中的一个节点。对于多维数组,如二维数组,可以将其视为一个线性表,通过不同的排列方式(按行或按列)将元素顺序存储。数组的一个关键特性是其下标通常从0开始,并且数组的大小在定义后不能改变。
数组的顺序表示是指在内存中,数组的元素是连续存储的。对于二维数组,有两种常见的顺序存储方式:行优先存储(按行填充)和列优先存储(按列填充)。行优先存储意味着先填充第一行的所有元素,然后是第二行,以此类推;列优先存储则相反,先填充第一列的所有元素,再填充第二列,依此类推。
在处理特殊矩阵时,如稀疏矩阵(大部分元素为零的矩阵),为了节省存储空间,可以采用压缩存储的方法。常见的压缩方式是使用三元组(行索引,列索引,值)来存储非零元素。对于矩阵运算,如加法和乘法,可以在三元组表示的基础上进行。
在数组的顺序表示和实现中,需要注意的是,尽管数组在逻辑上可能表现为多维,但在内存中,它们通常是一维的。因此,需要建立一个多维数组到一维存储空间的映射关系,以便正确地访问和操作数组元素。
本教程涵盖了数组的基本概念,顺序存储方法,以及在处理特定情况(如矩阵)时的优化策略,是学习C语言数据结构的重要资料。通过深入理解这些知识点,可以帮助开发者更有效地利用数组这一基本数据结构进行程序设计。
2014-05-27 上传
2011-04-02 上传
2011-03-18 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
vivid_xi
- 粉丝: 0
- 资源: 4
最新资源
- 单片机英文资料 英文文献
- 从硬盘安装Linux操作系统
- flex cookbook
- at89c52芯片中文资料
- Matlab7官方学习手册
- C#面试题C#面试题
- ucos-ii中文版教程(第二版).pdf
- 通信元器件选用指南_新新电子有限公司供稿 方佩敏整理
- 图书管理系统需求 分析
- 银联销售点终端产品认证实施细则
- Globin-like蛋白质折叠类型识别
- A new look at discriminative training for hidden Markov models
- PCB高级设计讲义_射频与数模混合类高速PCB设计
- 3424aerwqerqwer
- C#向Excel报表中插入图片的2种方法
- 51学习笔记 简单的