结构体及单向链表的学习

一,结构体

结构体为已有数据类型的组合

1,结构体声明及赋值

struct是声明结构体类型时所必须使用的关键字,不能省略,它向编译系统声明这是一个“结构体类型”,它包括不同类型的数据项。应当说明struct student是一个类型名,它和系统提供的标准类型(如int、char、float、 double 等)一样具有同样的作用,都可以用来定义变量的类型,只不过结构体类型需要由用户指定。要注意末尾有分号;

2,结构体初始化

结构体的初始化是按声明顺序依次初始化

3,结构体部分初始化

部分初始化其他为0,中间用逗号','分隔,每个开头加点'.'

4,结构体的对齐

消耗空间提高程序执行效率

(1、结构体按照其最长成员大小对齐,意味着最终的大小必须是最长成员大小的整数倍;
(2、结构体成员按照结构体成员声明先后次序依次存放,并且每个成员的首字节放置的位置必须能够整除成员的字节数;
(3、如果结构体某个成员的字节数大于CPU的字节数,则最长按照CPU的字节数对齐;
(4、用预处理命令#pragma pack(n) 可以强制编译器按照指定的n来对齐,合法的n的数值分别是1、
2、4、8、16。

5,结构体的遍历

6,结构体数组的遍历

7,结构体作函数参数传参多用指针传参

 

s->id += 10 等同于 (*s).id += 10

结构体允许整体赋值如 s1 = s2,结构体间无法大小比较,其成员可以比较

8,逆序及按成绩排序

9,按名字排序,名字为字符型数组不得整体赋值

10,调用函数qsort快速排序

二,单向链表

由若干个节点Node组成,节点有值域和指针域两部分,各个节点地址不连续

有头链表,从栈区开空间作首节点,由头指针pHead-->首节点-->头节点

头插法

节点结构体

头插

遍历

统计有效节点数和判断是否空链表

主函数

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值