数组

本文介绍了数组的基本概念,包括数组的逻辑结构、存储方式及其在不同领域的应用。文章详细解释了一维数组(向量)和多维数组(如矩阵)的概念,并讨论了数组元素的插入与删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际应用中,数组是以表的形式出现的,数组中的元素是同一类型的。科学与工程计算领域中数组的元素通常是数值类型,非数值计算领域中数组的元素通常是用户自定义类型。一维数组又称为向量,二维数组又称为矩阵。多维数组通过行优先或列优先描述,可以映射成一维数组。

数组是由同一种数据类型的数据元素组成的线性表,因此数组的逻辑结构与一般线性表的逻辑结构是相同的。

组成数组的数据元素可以是初等项,这是最简单的情况;也可以是组合项,甚至是一种数据结构,这种情况处理起来就比较复杂。

数组中元素按它们之间的关系排成一个线性序列:a0,a1,...,an-1

其中,数组中元素的序号排列采用了与c++中数组下标相同的排列方法,即n个元素的序号从0到n-1.数组中的元素在存储空间中是顺序存储的。

假设数组中一个元素所占用的存储空间大小为1,整个数组存储空间的始地址为addr,用Loc(ai)表示元素ai的存储始地址,显然有Loc(ai)=addr+i*1(i=0,1,...,n-1),只要知道整个数组的存储始地址(即a0的存储地址)、某个数组元素的序号和每个数组元素所占存储空间的大小,就可以立即求出该数组元素的存储地址,而且求任何一个数组元素的存储地址所花费的时间都相等。因此,这种存储结构是一种随机存储结构。

数组元素的插入和删除

数组元素的插入操作要求在数组的第i(0<=i<=n)个位置上插入一个值为x的新元素。  对插入位置i有一定的要求和限制。不允许i<0,因为数组的存储方式决定了i<0时所指示的位置已在数组空间之外,无法插入。也不允许i>n,如果在大于n的位置插入,即使没有越出数组空间的范围,也会由于新插入的元素与原来最后一个元素an-1之间存在空隙,使新元素与原元素的关系不符合数组中元素逻辑结构的要求,因此这种插入也是不允许的。当0<=i<=n,同时n<=ArraySize-1时,插入才允许进行。因为每插入一个新元素,数组的长度将增1,n<=ArraySize-1表示在插入之前至少还有一个数组元素的空闲空间可供使用,在这种情况下插入时,除i=n之外,都涉及原数组元素的移动。

数组中的删除操作是将数组的第i(0<=i<=n-1)个元素删去。显然,对删除结点的位置i也有一定的要求。与插入运算类似,在删除元素之后,也要移动数组元素,才能保持数组元素之间的线性逻辑关系。只不过插入时数组元素要后移,而删除时数组元素要前移。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值