求解释线性表与结构体数组的区别与联系。

本人已经学过结构体的知识,现在正在学数据结构中的线性表知识,看书的时候老感觉结构体数组与线性表非常类似,但好像又不完全一样。还有就是引入了线性表之后好像一下子增加留了很多... 本人已经学过结构体的知识,现在正在学数据结构中的线性表知识,看书的时候老感觉结构体数组与线性表非常类似,但好像又不完全一样。还有就是引入了线性表之后好像一下子增加留了很多新的概念,有哪位过来人能帮我连接一下这两部分的知识?在下感激不尽!!! 展开
 我来答
haibianyunduo
推荐于2018-02-23 · 超过12用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:19.8万
展开全部
首先要明白数组在内存中是连续分布的,顺序存放,一个数组站一块内存。
但是一个线性表在内存中可能不是连续的,是分散存放的,表的节点可能分布的很散,所以需要在节点中包含指向下一个节点的指针来找到下一个节点。

数组一定义,大小就不能更改了,系统给数组分配了一块内存。线性表的大小是可以变的。

线性表的一个节点就是一个结构体,结构体中的元素在内存中是连续存放的。所以结构体数组在内存中是连续站用的一块内存。
线性表是分散占用了很多块内存,每个表节点(就是一个结构体)占用一块连续内存,各个节点一般在内存中是不连续的。

举个例子:
有个结构体数组和线性表,大小是1G;假设计算机内存4G,这时候空闲了2G的内存,这2G的内存可能是分成了很多小块零散的分布的。所以这时候如果用结构体数组的话可能会失败,因为计算机内存可能没有一整块1G的空闲内存空间来放置数组;但是用线性表就可以用内存中分散的空余空间来保存这些数据。
baby速度12
高能答主

2015-11-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:4万
采纳率:86%
帮助的人:2777万
展开全部
区别:
1.数组在内存中是连续分布的,顺序存放,一个数组站一块内存。而线性表在内存中可能不是连续的,是分散存放的,表的节点可能分布的很散,所以需要在节点中包含指向下一个节点的指针来找到下一个节点。
2.数组一定义,大小就不能更改了,系统给数组分配了一块内存。线性表的大小是可以变的。
联系:
线性表的一个节点就是一个结构体,结构体中的元素在内存中是连续存放的。所以结构体数组在内存中是连续站用的一块内存。
线性表是分散占用了很多块内存,每个表节点(就是一个结构体)占用一块连续内存,各个节点一般在内存中是不连续的。

举个例子:
有个结构体数组和线性表,大小是1G;假设计算机内存4G,这时候空闲了2G的内存,这2G的内存可能是分成了很多小块零散的分布的。所以这时候如果用结构体数组的话可能会失败,因为计算机内存可能没有一整块1G的空闲内存空间来放置数组;但是用线性表就可以用内存中分散的空余空间来保存这些数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无语翘楚
高粉答主

推荐于2017-09-30 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:2.5万
采纳率:88%
帮助的人:2459万
展开全部
数组和结构体的区别:
数组是相同数据类型的元素按一定顺序排列而成的集合,是一种顺序表结构。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。
数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体在函数中的作用不是简便,其最主要的作用就是封装。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式