结构体的应用:
//数据结构与算法
数据结构---指的是 数据的组织形式//链表 树 图
数组---数据结构
数组特点
连续性
有序性
单一性
数据操作(访问)时特点
---------------------------------------------------------
数组:数据结构体 --- 操作时候的特点,
优势,随机访问(存取)方便
不足,插入数据 删除数据 不方便
链式数据结构 -- 链表
struct stu s1;//s1
struct stu s2;//s2
struct stu s3;//s3
s1--->s2--->s3
特点:优势:增加和删除数据 方便
劣势:存取不方便
链表:
//C语言如何描述这种数据结构
链表的目的 --- 存放数据
[数据]
[指针]
节点
针对这种数据结构的操作:
struct Node
{
int data;//数据域 -- 存储要处理的数据
struct Node *next;//保存地址--指向下一个节点
};//节点类型
struct Node n1;//
struct Node n2;
struct Node n3;
[数据n1] [数据n2] [数据n3]
[指针&n2] [指针&n3]
C语言,我们只研究"有头单向链表"
无头--第一个节点数据域为随机值或者无效值
操作://数据结构体 数据的处理 增删改查
1.创建一个链表
//空链表 --- 只有头节点,但是没有有效的数据节点
[xxx]
[NULL]//空链表
struct Node head;
head.next = NULL;//创建了一个空链表
2.打印链表
3练习:统计链表的长度//有效节点的个数
总结:
链表的操作:
1.创建空链表
2.插入链表
尾插
头插
3.遍历链表
4.统计链表的长度
5.删除数据
共用体(union)
struct demo
{
int a;
char b;
short c;
};
计算机早期的时候,能不能尽量节省空间?
共用体技术;
可以让,多个变量,共用同一块内存空间
//联合体
语法:
union 共用体名
{
成员列表
};
注意:1.共用体初始化时,只能给一个值,这个值默认时给到第一个成员的
2.共用体空间中数据,取决最后一次给到值
赋值的时候,每个成员只能影响,自己对应的字节
3 .共用体类型
可以定义变量
可以定义指针
可以做函数参数 和 返回值