⑴ 何时选用顺序表何时选用链表作为线性表的存储结构
顺序表:需要频繁地按位号访问,元素中间插入删除较少(在线性表的端点插入删除不算)
链表:频繁地在非端点插入删除元素、元素个数变动范围较大
⑵ 对线性表而言,什么情况下采用链表比顺序表好
当数据在存储单元不连续时,采用链表比较好,连续时线性好
⑶ 线性表的链式存储结构与顺序存储结构比较有何特点这两种结构分别适合在什么情况下使用
链式存储结构适用于数据更改(添加,删除)较多的情况。
而顺序存储结构更适用于数据查询(改变某位置上数据的值,查找某位置上的值),各有各的优点,他们的缺点是:
链式结构上查找(查找第几个位置上的值)花的系统开销(主要是时间上的开销)要比顺序结构上的多,
而顺序结构上要删除某位置上的值或者在某位置添加数据时花的系统开销要比在链式上多。
所以在选用存储结构之前就要先考虑到以后对数据的操作主要是查询多还是更改多!
⑷ 简述顺序表和链表存储方式的特点。
顺序表存储数据实行的是 一次开辟,永久使用,即存储数据之前先开辟好足够的存储空间,空间一旦开辟后期无法改变大小(使用动态数组的情况除外)。而链表则不同,链表存储数据时一次只开辟存储一个节点的物理空间,如果后期需要还可以再申请。
因此若只从开辟空间方式的角度去考虑,当存储数据的个数无法提前确定,又或是物理空间使用紧张以致无法一次性申请到足够大小的空间时,使用链表更有助于问题的解决。
(4)什么时候使用链表存储扩展阅读:
注意事项:
头指针不可丢失,注意保持更新。
free指针必须确认,否则可能难以查错,避免链表成环状,通过打印限制以及单双步法检查链表环。
头结点使用前要用为之动态分配存储空间,而头指针可以直接使用。
带头结点的链表,空表的判定条件是head->next=NULL,而之带头制作的空表的判定条件是head=NULL。
⑸ 链表一般什么时候使用呢
处理数据,为学习抽象数据类型
⑹ 何时选用链表作为线性表的存储结构
顺序表的特点是按位访问快,中间插入删除慢,因此元素个数变动不大,经常按位置访问适宜于顺序存储
链表的特点是只能顺序访问,中间插入删除快,因此适宜于元素个数变动较大,经常插入删除的场合
⑺ 线性表L在什么情况下适用于使用链式结构实现
B、需不断对L进行删除插入。
如果使用数组也就是连续分配的话,删除,添加元素的话需要移动大量元素,而使用链式结构不需要移动元素。
链式存储结构特点:
1、比顺序存储结构的存储密度小(链式存储结构中每个结点都由数据域与指针域两部分组成,相比顺序存储结构增加了存储空间)。
2、逻辑上相邻的节点物理上不必相邻。
3、插入、删除灵活 (不必移动节点,只要改变节点中的指针)。
4、查找节点时链式存储要比顺序存储慢。
5、每个节点是由数据域和指针域组成。
6、由于簇是随机分配的,这也使数据删除后覆盖几率降低,恢复可能提高。
⑻ hashmap什么时候用数组什么时候用链表
这个要根据具体情况而定,主要看你存储的数据量和修改,读取频率
⑼ 链表和数组的区别。在什么情况下用链表
利用数组来组织数据结构
优点是:存储效率高,存取速度快。
但是,对于数据元素个数动态增长的情况,由于数组个数不能自由扩充(动态数组除外),一旦空间用完就不能再向里加入新元素,否则,就会导致系统停工。
利用链表则适用于插入或删除频繁、存储空间需求不定的情况。
⑽ 何时选用顺序表、何时选用链表作为线性表的存储结构为宜
顺序表的特点是按位访问快,中间插入删除慢,因此元素个数变动不大,经常按位置访问适宜于顺序存储。
顺序表往往使用一组连续的内存,对固定元素的随机存取(比如存取第几个元素)很方便。因此更适合于存放需要多次修改的数据。
链表的特点是只能顺序访问,中间插入删除快,因此适宜于元素个数变动较大,经常插入删除的场合。
链表就是像铁链一样,可以一直加,只要拿到头,就可以遍历整个链表里面的元素,每个元素的位置可能和其他元素的存储位置不是连续的,所以查询比较慢,但是增加删除比较快。
(10)什么时候使用链表存储扩展阅读:
如顺序表的每个结点占用len个内存单元,用location (ki)表示顺序表中第i个结点ki所占内存空间的第1个单元的地址。则有如下的关系:location (ki+1) = location (ki) +len
location (ki) = location(k1) + (i-1)len
存储结构要体现数据的逻辑结构,顺序表的存储结构中,内存中物理地址相邻的结点一定具有顺序表中的逻辑关系。