‘壹’ 顺序表与链表
顺序表是在计算机内存中以[数组]的形式保存的线性表,是指用一组地址连续的[存储单元]依次存储 数据元素 的线性结构。
线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的[存储单元]中。
特点:
(1)在顺序表中,各个表项的逻辑顺序与其存储的物理顺序一致,即第 i 个表项存储于第 i 个物理位置(1 < i < n)
(2)对顺序表中的所有表项,即可以进行顺序的访问,也可以随机的访问,也就是说,既可以从表的第一个表项开始逐个访问表项
也可以按照表项的序号(下标)直接的访问。
(3)无需为表示结点间的逻辑关系而增加额外的存储空间,存储利用率提高。
(4)可以方便的存储表中的任一结点,存储速度快。
链表是一种物理[存储单元]上非连续、非顺序的[存储结构],[数据元素]的逻辑顺序是通过链表中的[指针]链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储[数据元素]的数据域,另一个是存储下一个结点地址的[指针]域。 相比于[线性表][顺序结构],操作复杂。
特点:
(1)可以方便的进行扩充。
(2)可以方便的删除和插入。
由于顺序表:
1)在表中插入新元素或删除无用元素时,为了保持其他元素的相对次序不变,平均需要移动一半元素,运行效率低
2)由于顺序表要求占用连续的空间,如果预先进性存储分配。则当表长度变化较大时,难以确定合适的存储空间带大小,若
按可能达到的最大的长度预先分配表的空间,则容易造成一部分空间长期的限制而得不到充分的利用,若事先对表中的空间估计不足
则插入操作可能是表长超过预先的内存而造成内存溢出,但如果采用指针的方式定义数组,在程序运行时动态的分配内存,一旦需要
就可以分配他,这样可以扩充内存,但是是时间开销比较大
因此这就可以采用链表很好的解决。
‘贰’ 在数据结构中,线性表常用的存储表示方式有哪两种定义是什么
顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素。由于表中各个元素具有相同的属性,所以占用的存储空间相同。因此,在内存中可以通过地址计算直接存取线性表中的任一元素。这种结构的特点是逻辑上相邻的元素物理上也相邻。用顺序结构存储的线性表称作顺序表。 线性表按链式存储时,每个数据元素 (结点)的存储包括数据区和指针区两个部分。数据区存放结点本身的数据,指针区存放其后继元素的地址 (没有后继元素时设置为空字符(Null).。只要知道该线性表的起始地址 (记录在头指针中),表中的各个元素就可通过其间的链接关系逐步找到
‘叁’ 顺序表的存取方式为谢谢了,大神帮忙啊
顺序表是存储在一个连续的存储空间内,比如数组,像这样就可以随机访问。
‘肆’ 线性表 - 顺序存储结构 - 顺序表
顺序表
顺序表的定义
( ) 顺序存储方法
即把线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里的方法
( ) 顺序表(Sequential List)
用顺序存储方法存储的线性表简称为顺序表(Sequential List)
结点a i 的存储地址
不失一般性 设线性表中所有结点的类型相同 则每个结点所占用存储空间大小亦相同 假设表中每个结点占用c个存储单元 其中第一个单
元的存储地址则是该结点的存储地址 并设表中开始结点a 的存储地址(简称为基地址)是LOC(a ) 那么结点a i 的存储地址LOC(a i
)可通过下式计算
LOC(a i )= LOC(a )+(i )*c ≤i≤n
注意
在顺序表中 每个结点a i 的存储地址是该结点在表中的位置i的线性函数 只要知道基地址和每个结点的大小 就可在相同时间内求出任一结
点的存储地址 是一种 随机存取结构
顺序表类型定义
#define ListSize //表空间的大小可根据实际需要而定 这里假设为
typedef int DataType; //DataType的类型可根据实际情况而定 这里假设为int
typedef struct {
DataType data[ListSize];//向量data用于存放表结点
int length;//当前的表长度
}SeqList;
注意
① 用向量这种顺序存储的数组类型存储线性表的元素外 顺序表还应该用一个变量来表示线性表的长度属性 因此用结构类型来定义顺序表类
型
② 存放线性表结点的向量空间的大小ListSize应仔细选值 使其既能满足表结点的数目动态增加的需求 又不致于预先定义过大而浪费存储
空间
③ 由于C语言中向量的下标从 开始 所以若L是SeqList类型的顺序表 则线性表的开始结点a 和终端结点a n 分别存储在L data[ ]和
L Data[L length ]中
④ 若L是SeqList类型的指针变量 则a 和a n 分别存储在L >data[ ]和L >data[L >length ]中
顺序表的特点
顺序表是用向量实现的线性表 向量的下标可以看作结点的相对地址 因此顺序表的的特点是逻辑上相邻的结点其物理位置亦相邻
lishixin/Article/program/sjjg/201311/23579
‘伍’ 数据结构顺序表,顺序栈的存储方式都是用一组连续的地址存储是什么意思
就是顺序表和顺序栈存储在物理介质(如硬盘)的地址是连续的!一组连续的地址就是,比如第一个地址是0001(二进制),然后第二个就是0010(二进制),以此类推!忘采纳!
‘陆’ 顺序表是线性表的什么存储结构
顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
‘柒’ 简述顺序表和链表存储方式的特点。
顺序表存储数据实行的是 一次开辟,永久使用,即存储数据之前先开辟好足够的存储空间,空间一旦开辟后期无法改变大小(使用动态数组的情况除外)。而链表则不同,链表存储数据时一次只开辟存储一个节点的物理空间,如果后期需要还可以再申请。
因此若只从开辟空间方式的角度去考虑,当存储数据的个数无法提前确定,又或是物理空间使用紧张以致无法一次性申请到足够大小的空间时,使用链表更有助于问题的解决。
(7)顺序表的连续存储方式扩展阅读:
注意事项:
头指针不可丢失,注意保持更新。
free指针必须确认,否则可能难以查错,避免链表成环状,通过打印限制以及单双步法检查链表环。
头结点使用前要用为之动态分配存储空间,而头指针可以直接使用。
带头结点的链表,空表的判定条件是head->next=NULL,而之带头制作的空表的判定条件是head=NULL。