第八章:第3节 PHP数据结构与算法——单链表的优点、缺点、数据操作

更新于:2017-06-20 21:52:16

通过前一节的大概学习,对单链表有了最基础的认识。一种数据结构的存在,必然是有它的优点和缺点,更何况链表是应用非常广泛的一种数据结构。无一点可用之处,那大家都不用去学它了。只有先了解了链表的优缺点,才能激起我们学习的热情。我们来好好地探讨下单链表的优点和缺点。


生活中我们都知道,越是大件物品越不好储存,占用空间大,搬起来费劲;越是小件物品越好储存,可以分散存储,所以很多物件可以拆分,化整为零。通过生活中的道理映射到计算机,链表就占了这样的好处。链表是有序的列表,但是它在内存中是分散存储的。每个数据元素都会有下一个数据元素的地址信息(其实就是指针),犹如这张图一样,保持成一个整体:


1.png



单链表的特征:


链表每一个数据元素我们可以称为节点,每一个节点只有一个指针指向,这样的链表叫做单链表。

1.png


单链表有三种节点:表头节点、数据节点、尾节点。


表头节点:链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息。


数据节点:链表中代表数据元素的结点,包含指向下一个数据元素的指针和数据元素的信息。


尾节点:链表中的最后一个数据结点,其下一元素指针为空,表示无后继。


1.png

单链表的优点是:


1、无需一次性定制链表的容量,每个数据节点可以不是紧挨着的,是分散的。如果往链表里添加新数据节点,不会影响原先分散的数据节点的内存位置。


2、插入和删除操作无需移动数据节点,比较方便快捷,只需简单地重新做指针指向。


单链表的缺点是:


链表虽然是非常灵活的数据结构,但它获取指定数据时,需要按顺序依次访问数据节点做判断。数据量大的时候,查询特别慢。


单链表的数据操作设计原理演示:


插入操作:


1.png

删除操作:


1.png


韩顺平用单链表做过《水浒英雄排行榜管理》,下节楠神把他的代码和笔记拿来分享,可以帮助大家加深学习单链表的数据操作。