1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言数据结构——数组的定义与顺序存储

C语言数据结构——数组的定义与顺序存储

时间:2020-10-16 18:46:54

相关推荐

C语言数据结构——数组的定义与顺序存储

数组的定义:

数组A为n(n>0)个元素的有穷序列,记作

A =(a1,…,an)

ai(1≤i≤n)或者全部为相同数据类型的原子项ei(即,具体数值);或者全部为具有相同定义的数组Bi。

数组A =(a1,…,an)的维度(Dim)递归定义为:

数组在定义时只需要给出每个维度的长度或者范围即可。

在C语言中,定义N维数组除了要给出数据类型和数组名,还要依次给出数组每一位的长度L1,L2直到Ln。其中,L1为第一维的长度。

例子如下:

数组的顺序存储:

由于数组中各元素定义完全相同,将数组元素保存到内存中时,首选顺序存储。

但由于多维数组数据元素之间是复杂的多维关系,需要解决多维数据空间到一维数据空间的映射问题。

核心问题:数组元素多维结构到一维内存空间的映射

数组A = (a1,…,an)顺序存储方案的递归定义:

递归基础:ai为原子项ei

递归条件:ai为数组Bi

例子如下:

数组的基本操作:

操作特点:

以数组元素的读取和写入为主;

一般不在数组中插入和删除数据元素;

支持使用下标(元素在各位数组中的位置序号)对数组元素进行随机访问。

数组的随机访问——低下标优先

若知道a1的地址,每个原子项为size字节,则an的地址为:

Loc(an) = Loc(a1)+(n-1)✖size(一维数组)

Loc(an,m) = Loc(a1,1)+(n-1)✖size+(m-1)✖size(二维数组)

例子如下:

知识总结:

数组特点:

数据元素亦为相同结构数组;

数据元素宏观为线性关系。

顺序存储方案:

可表达数组的递归结构,并体现数据元素之间的关系;

实现了数据元素多维关系到一维内存的映射;

通过下标可以随机访问数组元素。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。