【408数据结构与算法】—单链表(五)

简介: 单链表:每个结点只有一个指针域

【408数据结构与算法】—单链表(五)

一、什么是单链表

  • 单链表:每个结点只有一个指针域
  • 双链表:每个结点有两个指针域
  • 循环链表:链表结点首尾相接

2345_image_file_copy_125.jpg

二、带头结点的单链表

单链表是由表头唯一确定的,因此单链表可以用头指针的名字来命名若头指针名是L,则链表称为表L

2345_image_file_copy_126.jpg

2345_image_file_copy_127.jpg

🎊单链表的存储结构

2345_image_file_copy_128.jpg

2345_image_file_copy_129.jpg

2345_image_file_copy_130.jpg

定义链表L:LinkList;

定义结点指针p:LNode *p<=>LinkList p;

例如:存储学生学号,姓名,成绩的单链表结点类型定义如下:

typedef Struct student{
  char num[8];
  char name[8];
  int score;
  struct  student *next;
}Lnode,*LinkList;


为了统一链表的操作,通常这样定义:

typedef Struct student{
  char num[8];
  char name[8];
  int score;
}ElemType;
typedef struct Lnode{
  ElemType data;
  struct Lnode *next;
  struct Lnode *next;
}Lnode,*LinkList

2345_image_file_copy_132.jpg

三、单链表的基本操作

1️⃣单链表的初始化

算法的步骤:

  • 生成新结点作为头结点,用头指针L指向头结点
  • 将头结点的指针域置空

补充算法1:判断链表是否为空

空表:链表中无元素,称为空链表(头指针和头结点仍然存在)

2345_image_file_copy_134.jpg

补充算法2:单链表的销毁:链表销毁后不存在

算法思路:从头指针开始,依次释放所有结点

2345_image_file_copy_135.jpg

销毁单链表的算法

2345_image_file_copy_136.jpg

补充算法3:单链表的清空:链表仍然存在,但链表中无元素,称为空链表(头指针和头结点仍然存在)

算法思路:依次释放所有的结点,并将头结点指针域设置为空

2345_image_file_copy_137.jpg

2345_image_file_copy_138.jpg

补充算法4:求单链表的表长

算法思路:从首元结点开始,依次计数所有结点

2345_image_file_copy_139.jpg

2345_image_file_copy_140.jpg

2345_image_file_copy_141.jpg

相关文章
|
1月前
【数据结构】单链表(长期维护)(1)
【数据结构】单链表(长期维护)(1)
|
12天前
|
存储 算法 C语言
数据结构基础详解(C语言):单链表_定义_初始化_插入_删除_查找_建立操作_纯c语言代码注释讲解
本文详细介绍了单链表的理论知识,涵盖单链表的定义、优点与缺点,并通过示例代码讲解了单链表的初始化、插入、删除、查找等核心操作。文中还具体分析了按位序插入、指定节点前后插入、按位序删除及按值查找等算法实现,并提供了尾插法和头插法建立单链表的方法,帮助读者深入理解单链表的基本原理与应用技巧。
|
1月前
|
存储
【数据结构】单链表-->详细讲解,后赋源码
【数据结构】单链表-->详细讲解,后赋源码
22 4
|
1月前
|
算法 索引
【初阶数据结构篇】单链表算法题进阶
深拷贝应该正好由 n 个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。
|
1月前
【数据结构】单链表(长期维护)(2)
【数据结构】单链表(长期维护)(2)
|
2月前
|
存储 DataX C语言
【数据结构】单链表
数据结构中的单链表
23 0
【数据结构】单链表
|
3月前
|
存储 测试技术
【数据结构】最最基础的链式结构——单链表,还不会你就吃大亏了!
【数据结构】最最基础的链式结构——单链表,还不会你就吃大亏了!
42 5
|
3月前
|
算法 程序员 数据处理
【数据结构与算法】使用单链表实现队列:原理、步骤与应用
【数据结构与算法】使用单链表实现队列:原理、步骤与应用
|
3月前
|
算法 C语言
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
【数据结构与算法 经典例题】返回单链表的倒数第 k 个节点
|
3月前
|
存储 算法 C语言
【数据结构与算法】深入理解 单链表
【数据结构与算法】深入理解 单链表