当前位置:首页 » 存储配置 » 数组是什么存储结构

数组是什么存储结构

发布时间: 2022-08-03 21:37:15

‘壹’ 一个简单的问题,数组是逻辑结构还是存储结构

存储结构是逻辑结构的存储映像,逻辑结构指的是数据间的关系,它又分为线性结构和非线性结构,这两者并不冲突。一个指的是数据之间的关系,而另一个指这种关系在计算机中的表现形式。两者的区别就在于给他们定义的特殊操作,它们都有”出“和”入“两种操作,一个是“先进先出”,而一个是“后进先出”。

一种逻辑结构在计算机里可以用不同的存储结构实现。比如逻辑结构中简单的线性结构,可以用数组(顺序存储)或单向链表(链接存储)来实现。逻辑结构:指各数据元素之间的逻辑关系。存储结构:就是数据的逻辑结构用计算机语言的实现。

‘贰’ 数组是不是一种数据结构

1。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
2。数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。
3。对每一个数据结构而言,必定存在与它密切相关的一组操作。

所以,数组不是数据结构。结构体也不是

‘叁’ 数组的存储结构采用什么存储方式

数组在内存中是采用一段连续的地址进行顺序存储的!

祝你学习愉快!

详细请参考
http://www2.gliet.e.cn/jpkc/datastructure/course/course_content.asp?chapter_id=4§ion_id=17

‘肆’ 二维数组是如何存储的

二维数组A[m][n]可以视为由m个行向量组成的向量,或者是由n个列向量组成的向量。

由于计算机的内存是一维的,多维数组的元素应排成线性序列后存入存储器。数组一般不做插入和删除操作,即结构中元素个数和元素间的关系不变。所以采用顺序存储方法表示数组。

1、行优先存储

将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。

【例】二维数组A[m][n]按行优先存储的线性序列为:

A[0][0]、A[0][1]…A[0][n]、A[1][1]、A[1][1]…A[1][n]…A[m][n]、A[m][1]…A[m][n]

在PASCAL和C语言中数组按行优先顺序存储。

2、列优先存储

将数组元素按列向量排列,第i+1个列向量紧接在第i个列向量后面。

【例】二维数组A[m][n]按列优先存储的线性序列为:

A[0][0]、A[1][0]…A[m][0]、A[0][1]、A[1][1]…A[m][1]…A[m][1]、A[0][n]…A[m][n]

ORTRAN语言中,数组按列优先顺序存储。

‘伍’ 数组的定义是什么

1.数组的定义数组是由n(n≥1)个具有相同类型的数据元素a0,a1,a2,…,an-1组成的有序序列,且该序列必须存储在一块地址连续的存储单元中,并用一个统一的数组名标识。

2.数组的特点(1)数组中的数据元素具有相同数据类型。

(2)数组是一种随机存取结构,给定数组下标,就可以访问与其对应的数据元素。

(2)数组可被看成定长的线性表,因此数组中的数据元素的个数是固定的。

2.数组分类根据数组元素ai的组织形式的不同,数组可分为一维数组、二维数组以及多维数组。

1.一维数组一维数组可被看成一个线性表或一个向量,它在计算机内存放在一块连续的存储单元中,在C语言中一维数组一般定义为:数组名[下标]。

2)二维数组若一维数组中的数据元素又是一维数组结构,则称为二维数组。在二维数组中,每个数据元素aij对应一个行下标和一个列下标。因此,除边界元素外,每个元素aij都恰好有两个直接前驱aij-1和ai-1j,两个直接后继aij+1和ai+1j。开始结点a11没有前驱结点,终端结点amn没有后继结点,边界上的结点a1j(1≤j<n)、amj(1≤j<n)、ai1(1≤i<m)和ain(1≤i<m)均只有一个后继结点或一个前驱结点,也可被看成线性表的线性表。因此,二维数组的逻辑结构是:每个元素至多有两个直接前驱和两个直接后继。在C语言中,二维数组一般定义为:数组名[下标][下标]。

2)n维数组在n维数组中,每个数据元素对应n个下标,受n个关系的制约,其中任一个关系都是线性关系,也可被看作数据元素为n-1维数组的一维数组。在C语言中多维数组一般定义为:

数组名[下标]…[下标],有几个下标就是几维数组。

4.数组的基本操作数组在创建时就确定了组成该结构的行向量数目和列向量数目,因此,在数组结构中不存在插入、删除元素的操作。因此,除了初始化和销毁之外,数组通常只有两种操作:

(1)存取(读):给定一组下标,读取相应的数据元素。

(2)修改(写):给定一组下标,存取或修改相应的数据元素。

‘陆’ 数组是按照什么数据结构存储的

顺序存储结构,因为数组在空间上是连续的

‘柒’ 程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

不对,数组本身的存储结构是线性的,就是说它是连续存储的,但是数组中元素可以存储指针,就是指针型数组,它就可以利用数组处理非线性的数据。比如将一个链表每个结点的地址存入数组,那样访问数组,就是处理非线性的数据了

‘捌’ 什么是数组数组元素与存储单元的对应关系是怎样的

数组就是存储一堆数据的存储结构。(可是是整数,可以是字母,甚至,多元数组还可以存储字符串)

数组里的元素是连续的。所以相邻的存储单元的存储地址是连着的。
这也是后面为什么指针可以来代替数组处理问题的原因。
比如a[0]和a[1]的存储单元地址是连续的

‘玖’ 为什么说数组是一种随机存储结构

数组的存储是连续的,但是访问是随机的。因为可以用下标进行数组的随机访问。相反,链表可以实现随机存储,但是其访问却必须是连续的。

热点内容
分解质因数c语言 发布:2024-10-05 12:15:53 浏览:776
mysql存储过程字符编码 发布:2024-10-05 12:05:48 浏览:180
c语言命名 发布:2024-10-05 11:56:38 浏览:616
编程哪个好学习 发布:2024-10-05 11:50:59 浏览:999
为什么不买安卓旗舰 发布:2024-10-05 11:46:04 浏览:380
ostcb编译条件 发布:2024-10-05 11:28:24 浏览:993
win10怎么关闭登录密码 发布:2024-10-05 11:09:55 浏览:935
降温解压器 发布:2024-10-05 10:54:15 浏览:421
轧钢压缩空气 发布:2024-10-05 10:54:10 浏览:185
京东微信密码是多少 发布:2024-10-05 10:28:48 浏览:488