C语言进阶实战-相关知识点

1. 编译过程

预处理,编译,汇编,链接

2. 预处理

头文件包含,宏定义展开,条件编译选择

3. 宏定义(平行展开,内外同时进行。比小函数性能高)

变量,文件,函数(可变参数 … ##VA_ARGS),#,##

4. 字节序

大端(高字节低地址),小端(arm/x86),网络,主机

5. 深拷贝,浅拷贝

6. 字节对齐

提高CPU访问数据的效率(次数),提高对CPU/编译器兼容性(否则:段错误/效率低)

7. 结构体大小(变长数据包)

自然对齐,指定对齐(#pragma)

8. 联合体成员取值(int char*),联合体大小

9. 线性表

数组/链表/栈/队列。单/双链表添加元素、删除元素。
数组/链表实现栈:下标top/head=-1
数组/链表实现队列:初始都指向头a[0],出队front后移,入队rear后移
应用实例:栈帧(栈地址从高到低扩展)[用户栈和内核栈(中断切换)]

10. 二叉树的顺序存储和链式存储数据结构

11. 二叉树的遍历方式(区别在于根的先后,采用递归进行访问)

前序遍历(根左右),中序遍历(左根右),后序遍历(左右根),层次遍历(使用队列,先访问根节点,若节点左右孩子指针非空则入队,以此类推)。

12. 二叉树推导遍历结果

前中后取其二,必须包含中序遍历才能唯一确定一棵二叉树。

13. 二叉查找树(二叉排序树)查找插入删除

左子树<根<右子树。
删除分有012个叶子节点的情况:
0则直接使其父节点对应指针指向空;
1则使其父节点对应指针指向其子节点;
2则需要位置变换,用其右子树中最小节点替换当前节点。

14. 红黑树。。。

15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值