链表的提出,为什么需要链表?
首先看一下顺序表和链表的区别
顺序表:预先知道数据大小来申请连续的存储空间,而在进行扩充时又需要进行数据的搬迁,所以使用起来不是很灵活?
链表:可以充分利用计算机内存空间,实现灵活的内存动态管理,可以通俗理解为手链,通过链子把珠子一颗一颗串起来,就是节点和节点之间靠绳子串起来,
链表和顺序表统称为线性表(所谓线性表就是:数据结构无论是连续存储还是拿线串起来,最终表现形式就是
一维空间的一根线串起来的),在扩充 后期会引入二维空间、一个平面了,树的概念
链表的定义
链表是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。
这种非连续的存储怎么把他们连续起来呢,如何让他们之间产生关系呢?
如图所示:把数据分成两部分,一部分是数据区,一部分是链接区
单向链表
单向链表也叫做单链表,是链表中最简单的一种形式,它的每一个节点包含两个域,一个信息域(元素域)和一个链接域,这个链接指