关于“结构体——链表”的学习
广西河池学院
广西高校重点实验室培训基地
系统控制与信息处理重点实验室
本篇博客来自河池学院:OpenWRT无线路由组
写作时间:2020年8月24日22:00:00
## 结构体
-
结构体的定义
在c语言中,结构体指的是一种数据结构,是c语言中局和数据类型的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般都用名字访问。
-
** 结构体的书写**
如下列代码所示,struct为结构体的关键字,s1为结构体的标志,a,b,c为结构体成员列表。
struct s1{
int a;
char b;
double c;
};
- 结构体注意点:
- 将较小的类声明为结构,可以提高系统的处理效率。
- 定义结构的默认(无参数)构造函数是错误的。 在结构体中初始化实例字段也是错误的。 在声明结构后,只能通过使用参数化构造函数或通过逐个访问成员才可以初始化结构成员。 任何私有或其他不可访问的成员只能在构造函数中进行初始化。
链表
- 链表的定义:
链表是一种物理储存单元上非连续、非顺序的储存结构,诗句结构的逻辑顺序是通过链表中的指针链接次序实现的。
- 链表类型:
链表分为单向链表,双向链表以及循环链表几种,循环链表分为单向循环链表和双向循环链表两种。单向链表为指针单向的链表。循环链表的最后一个结点的指针指向表头结点。双向链表的结点除了含有数据域外,还有两个链域,一个储存直接后继结点地址,一般称之为右链域;一个储存前驱点地址,一般称之为左链域。而双向循环链表就是有两个链域的循环链表。
-
链表组成
链表有一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是储存数据的数据域,另一个是储存下一个结点地址的指针域。 -
链表的优缺点
使用链表结构可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间实现灵活的内存动态管理。但是链表失去了数组随机读取的有点,同时链表由于增加了结点的指针域,空间开销比较大。 -
链表学习拓展(链表实现小型学生成绩管理系统)