为什么要有linked list?

每种数据结构存在,肯定是因为它相比某些数据结构,在一定程度下,在处理数据方面更有优势。
Linked list出现主要是因为Array在某些情况下一些操作不便,才引出Linked List的。
你可以看看下面Array和Linked List的优缺点,你就大概能看出问题来。

从内存存储的角度

  1. 数组在内存中存储的地址是连续的,而链表是不连续的;
  2. 数组在初始化的时候,一般大小就被定义好了(当然也可以使用动态数组);而链表则可以根据数据的大小实时分配内存存储,只要系统内存足够,需要多少你就可以分配多少;
  3. 如果数组初始化大小为1000,而当前系统需要存储的只有10个数据,那么就会有990个内存空间被浪费掉,而链表则没有这样的问题,因为链表是根据你的实际需要,去存储数据;换个角度,如果需要存储1000个数据,但是数组初始化只有10个数据,就会造成多余的数据无法存储;

从数据操作的角度

  1. 查找:数组(可以随机访问),链表(需要从头遍历)
  2. 插入:数组(插入时,在后面的元素都要往后移),链表(插入很方便,只要交换一下指针)
  3. 删除:数组(删除时,在后面的元素都要往前移),链表(删除也很方便,只需要交换一下指针)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值