C语言实现单链表的基本操作

2017-01-28 17:08 阅读 607 次 评论 0 条

单链表简介

基本性质:单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。今天所要讲解的单链表属于线性表的第二种表示方式,第一种为顺序表在之前的博文https://www.1024do.com/?p=1226中有写到。

链表结构:今天博主叙述的是无头单链表,即头指针pHead指向的是链表中的第一个节点。链表的每一个节点都有两个部分组: 一个是数据域,一个是指针域,数据域用来存储数据,指针域用来存储下一个节点的地址

构建单链表的节点

初始化单链表

在链表末尾插入值为data的新节点(尾插)

分为以下两种情况:①当链表为空时,直接让头指针pHead指向新节点。②链表非空时如下图所示:

删除链表的最后一个节点(尾删)

分为以下三种情况:①链表为空时,直接返回 ②链表中仅有一个节点,删除掉该结点后,让pHead指向Null ③链表中有多个结点时,如图所示:

在链表头部插入值为data的新节点

分为两种情况:①链表为空  ②链表不为空,先连接原pHead,在将pHead指向新结点。两者性质一样,可以进行合并,如下图所示:

删除链表的第一个节点(头删)

分为三种情况:①链表为空时,直接返回 ②链表中仅有一个节点 ③链表中有多个结点时,②③可以合并,先保存头指针,pHead在指向下一个结点,再释放旧的pHead。具体实现如下图所示:

查找链表中值为data的节点

设计思路:对单链表进行一次遍历,存在返回该节点的地址,不存在返回Null。

在链表pos节点后面插入值为data的新节点

删除pos节点,删除之前先找到那个元素

移除链表中第一个值为data的节点

移除链表中所有值为data的节点

获取链表中的第一个节点

获取链表中的最后一个节点

判断链表是否为空

构建新节点

正序打印单链表

逆序打印单链表

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:C语言实现单链表的基本操作 | 术与道的分享
分类:编程素养 标签:,
1024do.com导航_术与道导航平台

发表评论


表情