阅读本文大概需要6分钟
数据结构之链表操作
从今天开始,开始数据结构系列的文章,每天学习一点点,逐步学习数据结构。
本篇文章讲解的是数据结构中的线性链表操作。
什么是线性表
线性表是用一种用用任意存储单元来存储线性数据元素第一种结构,可以是连续的,也可以是不连续的。
其实说白了,就是说任意一个元素可以存放在任意一个位置,相邻两个元素不一定要互相挨着。
线性表
存储方式
我们在存储时可以使用数组进行存储,也可以使用链表进行存储。今天主要来说说链式存储吧,毕竟这个很重要的。
链式存储中,每个元素都包含了两部分,数据域和指针域。如下图所示
链式存储示意图
可以看出来,每个元素都有对应的地址。
头指针和头节点
在链式存储中,头指针就是链表中第一个节点的存储位置,头指针具有以下几个特征:
头指针是指向链表第一个节点的指针;
头指针具有标识作用,所以长用头指针标识链表的名字;
无论链表是否为空,头指针均不为空。头指针是链表必须的元素;
关于头节点:
头节点时为了操作统一和方便而设立的,放在第一个节点之前,其数据域一般没有意义,为空;
有了头节点,对第一个元素节点前的插入和删除节点的操作和其他节点的操作都会统一;
头节点不一定是链表必须的元素;
单链表的结构
单链表结构
如上是一个单链表的结构。包含了基本的结构,数据域和指针域。
其中数据域包含了一个数据类型,这个可以自定义,这里举例用int,指针域是指向下一个元素的的地址。
单链表结构
从上图可以看出来,假设P是指向线性表的第i个元素的指针,则该节点的数据我们可以用p-gt;data来表示,p-gt;data的值就是表示该元素的值,下一个节点我们可以使用p-gt;pNext来进行访问,比如,下一个元素的值,p-gt;pNext-gt;data。
ok,今天就到这里,后面会讲解单链表的创建、添加、删除等操作。
后记
头条号分享Linux,Windows下C/C++,编程相关的技术,坚持每天进行技术支出,希望大家能够喜欢。
你的