求解释线性表与结构体数组的区别与联系。
展开全部
首先要明白数组在内存中是连续分布的,顺序存放,一个数组站一块内存。
但是一个线性表在内存中可能不是连续的,是分散存放的,表的节点可能分布的很散,所以需要在节点中包含指向下一个节点的指针来找到下一个节点。
数组一定义,大小就不能更改了,系统给数组分配了一块内存。线性表的大小是可以变的。
线性表的一个节点就是一个结构体,结构体中的元素在内存中是连续存放的。所以结构体数组在内存中是连续站用的一块内存。
线性表是分散占用了很多块内存,每个表节点(就是一个结构体)占用一块连续内存,各个节点一般在内存中是不连续的。
举个例子:
有个结构体数组和线性表,大小是1G;假设计算机内存4G,这时候空闲了2G的内存,这2G的内存可能是分成了很多小块零散的分布的。所以这时候如果用结构体数组的话可能会失败,因为计算机内存可能没有一整块1G的空闲内存空间来放置数组;但是用线性表就可以用内存中分散的空余空间来保存这些数据。
但是一个线性表在内存中可能不是连续的,是分散存放的,表的节点可能分布的很散,所以需要在节点中包含指向下一个节点的指针来找到下一个节点。
数组一定义,大小就不能更改了,系统给数组分配了一块内存。线性表的大小是可以变的。
线性表的一个节点就是一个结构体,结构体中的元素在内存中是连续存放的。所以结构体数组在内存中是连续站用的一块内存。
线性表是分散占用了很多块内存,每个表节点(就是一个结构体)占用一块连续内存,各个节点一般在内存中是不连续的。
举个例子:
有个结构体数组和线性表,大小是1G;假设计算机内存4G,这时候空闲了2G的内存,这2G的内存可能是分成了很多小块零散的分布的。所以这时候如果用结构体数组的话可能会失败,因为计算机内存可能没有一整块1G的空闲内存空间来放置数组;但是用线性表就可以用内存中分散的空余空间来保存这些数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询