简单易懂-链表

本文介绍了线性表的基本概念,包括数组和链表两种常见实现方式,强调了它们在内存管理和操作效率上的区别。链表在插入和删除操作上具有优势,而数组则在内存连续性和访问速度上占优。同时,文章提到了非线性表如二叉树和图的数据结构特点。链表的分类包括单链表、双链表和循环链表。在实际开发中,选择数据结构应综合考虑操作需求和性能因素。
摘要由CSDN通过智能技术生成

   首先了解线性表,顾名思义就是线性表数据排成像一条线一样的结构。每个线性表上的数据组最多只有最多只有前后两个方向。常见的线性表结构由数组,链表,队列,栈等线性结构。

  

 

 

 

 

而它的相对结构就是非线性表。比如二叉树堆,图,非线性中的数据并不是简单的前后关系。

链表和数组的区别:

         从底层结构看数组需要一块连续的内存空间来存储,对内存的要求比较高,而且数据在进行插入删除时候需要大量的数据迁移,复杂度为O(n),而链表对内存要求较低,因为链表不需要连续的内存空间。插入和删除只需要考虑相邻接结点指针的改变,复杂度为O(1),但由于数组大小是固定的,已经声明就要占用连续的内存,且不能扩展,所以就有了链式存储结构。

链表 VS 数组性能
不过,数组和链表的对比,并不能局限于时间复杂度。而且,在实际的软件开发中,不能仅仅利用复杂度分析就决定使用哪个数据结构来存储数据。
数组简单易用,在实现上使用的是连续的内存空间,可以借助 CPU 的缓存机制,预读数组中的数据,所以访问效率更高。而链表在内存中并不是连续存储,所以对 CPU 缓存不友好,没办法有效预读。

链表的理解:因为链表不需要使用地址连续的存储单元,而是通过“链” 建立起数据元素之间的逻辑关系,因此插入删除时不需要移动元素,只需修改指针。

链表的分类:单链表,双链表,循环链表(单双),静态链表。

关于链表的基本操作会在之后继续分享(*^▽^*)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值