链式存储与顺序存储的区别

链式存储于顺序存储的区别

数据的存储方式一般有两种(这里我们说的存储是指存在内存中):链式存储和顺序存储。接下来解析两者的区别

顺序存储

顺序存储是指在内存中开辟连续的存储空间来存放数据,比较有代表性的就是数组以及ArrayList集合这种结构的存储方式都是使用的顺序存储来存储元素对象的;而ArrayList的底层也是通过数组来存储数据元素的,所以我们可以通过数组来观察顺序存储的优缺点。

优点:查询、遍历效率高

缺点:增删改效率低

链式存储

链式存储的存储空间不是连续的,它是通过指针来指向下一个元素或者上一个元素的地址来定位到该元素的,链式存储的由数据域(data域)与指针域(也叫做地址域,单向链表只有尾指针,双向链表有头指针和尾指针)两部分构成,通过指针指向下一元素,将所有的元素穿插起来,从而形成了一个链表。

优点:增删改效率高

缺点:查询、遍历效率低

顺序存储和链式存储为什么会形成这样的区别

顺序存储方面:

我们都知道数组中的元素都有一个下标,每个元素可以通过下标来寻找,因此我们就可以通过这种模式快速的对数组进行遍历与查询。但是我们在进行增删改操作时,其余元素的下标都会因为这些操作而发生改变,比如数组A中有10个元素,我删除了下标为 5 的这个元素,那么下标为 5 这个元素之后的所有元素都会 -1(向前移动),那么我就要执行5次同样的移动操作,如果数据量更大,则耗时更长,这就很不划算了。

链式存储方面:

链式存储中没有下标,只有指针,通过指针指向的地址来寻找上一个元素或者下一个元素,而且每次查询都必须从头节点开始遍历,依次寻找,导致查询速度效率低下;但是由于链式存储是通过指针来形成链表的,所以在进行增删改时,只需要修改元素的指针,而不会像数组那样对一个元素进行操作,会影响其他很多元素,因此,效率得到了很大的提升。如:链表B中保存了元素B,B元素的下一个元素是C元素,C元素的下一个元素是D元素,B元素通过尾指针指向了C元素的地址,如果我们需要删除C元素,只需要将B元素的尾指针指向D元素即可,而其他元素并不会受到任何影响。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值