- 链表
(1)引入
(2)节点
节点组成:
数据域:
用来存储基本数据
指针域:
用来存储下一个节点的地址
(3)相关操作
链表是由 N 个节点组成,每个节点在内存中的地址使随机的,不一定连续
链式结构
typedef struct studentInfo
{
char name[16];
int age;
char sex;
int grade;
}StuInfo;
//信息节点
typedef struct student
{
struct studentInfo data; //数据域,存储当前节点信息
struct student *pNext; //指针域,存储下一个节点地址
}Stu;
有头链表(有头节点):----->无头链表)
a. 头插法
每个节点都插入在头节点之后
b. 尾插法
c. 头删法
删除第一个节点,即头节点之后的节点
e. 尾删法
f. 节点的查找
根据相关信息,查找节点是否存在
g. 节点信息的修改 --- 以姓名为基础,修改年龄
h. 链表的销毁
(4)概念区分:
a. 指针"指向"某个变量
指针的灵活性,使其可以指向任何合法的区域。
指向即保存的地址是相应变量的地址
b. 指针为 NULL
说明指针没有明确指向,未保存地址
不可访问其值。
c. 结构指针
惯用法:
结构指针变量名->成员
d. 头节点
标识链表的作用,其数据域为空,指针域保存第一个节点的地址
指针域实际就是一个结构指针!!用于保存下一个节点地址