1. “线性表”与“结构体数组”的区别与联系分别是什么
首先要明白数组在内存中是连续分布的,顺序存放,一个数组站一块内存。
但是一个线性表在内存中可能不是连续的,是分散存放的,表的节点可能分布的很散,所以需要在节点中包含指向下一个节点的指针来找到下一个节点。
数组一定义,大小就不能更改了,系统给数组分配了一块内存。线性表的大小是可以变的。
线性表的一个节点就是一个结构体,结构体中的元素在内存中是连续存放的。所以结构体数组在内存中是连续站用的一块内存。
线性表是分散占用了很多块内存,每个表节点(就是一个结构体)占用一块连续内存,各个节点一般在内存中是不连续的。
举个例子:
有个结构体数组和线性表,大小是1G;假设计算机内存4G,这时候空闲了2G的内存,这2G的内存可能是分成了很多小块零散的分布的。所以这时候如果用结构体数组的话可能会失败,因为计算机内存可能没有一整块1G的空闲内存空间来放置数组;但是用线性表就可以用内存中分散的空余空间来保存这些数据。
2. 顺序存储的线性表和一维数组有何区别 能够用一位数组实现顺序存储的所有功能吗
标准上得一维数组和线性表自然不同。 一个是静态固定分配的,一个是可以动态分配空间的,
自然是线性表的功能更强大。但是本质上所存储的东西都是一样。
主要的是在于,我们一般生活中的问题是不知道具体有多少数据的,所以,静态的不好固定。
这就是区别,后面的问题可想而知了
3. 数组与一般线性表的区别主要在于什么
一样的,线性表元素多一点而已。线性表一般结构体数组。
4. 数据结构线性表跟C+数组有什么区别
线性表是一种抽象的数据结构。
数组只是线性表的一种具体实现。
就像线性表同样可以使用链表来实现一样。
由数组实现的线性表自然有长度要小于数组的长度这样的规定啦。
5. 线性表两种 存储结构各自的优缺点有哪些
线性表的链式存储结构:
优点:
插入和删除不需要移动插入时只需要对插入位置后的一个元素进行操作,不需要大量的移动元素。空间有效利用高。
缺点:
大量访问操作时不如顺序存储结构,因为每次都需要从头开始遍历整个线性表直到找到相应的元素为止。
线性表的顺序存储结构:
优点:
可随机存取表中任一元素。因为有下标可以操作可以快速的定位到指定位置的元素,但是不知道位置的话也需要顺序遍历。
缺点:
插入或删除操作时,需大量移动元素。合适在很少进行插入和删除运算的情况下。
(5)线性表和数组存储的区别扩展阅读:
线性表的特征
集合中必存在唯一的一个“第一元素”。
集合中必存在唯一的一个 “最后元素” 。
除最后一个元素之外,均有唯一的后继(后件)。
除第一个元素之外,均有唯一的前驱(前件)。
线性表的基本操作
MakeEmpty(L) 这是一个将L变为空表的方法。
Length(L) 返回表L的长度,即表中元素个数。
Get(L,i) 这是一个函数,函数值为L中位置i处的元素(1≤i≤n)。
Prior(L,i) 取i的前驱元素。
Next(L,i) 取i的后继元素。
Locate(L,x) 这是一个函数,函数值为元素x在L中的位置。
Insert(L,i,x)在表L的位置i处插入元素x,将原占据位置i的元素及后面的元素都向后推一个位置。
Delete(L,p) 从表L中删除位置p处的元素。
IsEmpty(L) 如果表L为空表(长度为0)则返回true,否则返回false。
Clear(L)清除所有元素。
Init(L)同第一个,初始化线性表为空。
Traverse(L)遍历输出所有元素。
Find(L,x)查找并返回元素。
Update(L,x)修改元素。
Sort(L)对所有元素重新按给定的条件排序。
strstr(string1,string2)用于字符数组的求string1中出现string2的首地址。
参考资料来源:网络-线性表
6. 一般线性表和数组有什么区别各有什么特点
你指的是线性链表吧?
区别主要在动态分配上,现代语言支持动态数组,可以在运行期决定数组大小,但早期语言并不支持,因此数组必须在编译器确定大小。
而线性链表可以动态决定大小,随时删减添加,并且能够知道元素个数。数组除非用动态定义否则你要自己知道元素个数。比如c89就不支持动态数组,但c99支持。iso c++也不支持,但c+0x支持。
在支持动态数组的情况下,区别主要是,能否删除任意元素。数组是整体创建,整体删除的
7. 线性表的顺序存储结构和一维数组有什么区别哪个是静态存储空间
顺序表是计算机内以一维数组形式表示的线性表,
线性表有链式存储存与顺序储存两种方式:
1,顺序储存结构是指用一组地址连续的存储单元依次存储数据元素的线性结构。
2,链式存储是线性表采用指针连接的方式存储。
线性表的长度是随着线性表的插入删除操作的进行而变化的,在任意时刻线性表的长度小于等于数组的长度,线性表的顺序储存是动态的,而一维数组是静态的。
8. 数据结构,求问线性结构和线性表有什么区别呢谢谢
常用的线性结构有:线性表,栈,队列,数组,串。线性表是多个相同元素组成的有限线性序列。栈是一种特殊线性表,它将插入和删除限制在表的一端进行,是一种后进先出表。
队列也是一种操作受限的特殊线性表,它只允许在表的前端进行删除操作,而在表的后端进行插入操作。
顺序存储结构在计算机内用一组连续的内存单元来存储数组。一堆数组本身就是顺序表结构,多维数组是一种特殊的线性结构。串是一种数据元素固定为字符的线性表。
串上的操作是针对串的整体或串的某一部分子串进行的,而线性表是针对线性表上的某个数据元素进行的
另外,线性表是最基本、最简单、最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的,但这只适用大部分线性表,而不是全部。在数据结构逻辑层次上细分,线性表可分为一般线性表和受限线性表。
9. 一维数组和线性表的区别
一般来讲,线性表的长度是可变的一维数组不同的语言则不同,例如,c语言中一维数组的大小是固定的,但VB中就是可变的
10. C语言,顺序线性表和传统数组有什么区别
在结构体里定义一个数组,这样的好处在于可以用一个域表示顺序表中有效数据的个数,并与存储顺序表的数组比较紧密地结合在一起。
而直接定义数组的话,往往是用另外一个单独的变量来存储顺序表中有效数据的个数。这个变量与数组的关系就比较松散,靠编程者自己掌握才比较方便,用来交流时的可读性就差了一点。