直接拿错过的选择开始补知识点
二叉树
推荐视频
基础名词讲解
- 根节点(Root):二叉树的顶端节点,没有父节点。
- 子节点(Children):每个节点下面的节点。对于二叉树来说,每个节点最多有两个子节点。
- 叶节点(Leaf):没有子节点的节点。
- 父节点(Parent):一个节点上面的节点。
- 兄弟节点(Siblings):共享同一父节点的节点。
- 深度(Depth):从根节点到该节点的唯一路径上的边的数量。
- 高度(Height):节点的高度是指从该节点到最远叶节点的最长路径上的边的数量。整个树的高度是其根节点的高度。
- 层(Level):节点的层级,根节点位于第1层。
- 二叉树的度是指节点拥有的子节点的最大数量
具体来说:
- 度为0的节点称为叶子节点(Leaf),没有子节点。
- 度为1的节点有一个子节点。
- 度为2的节点有两个子节点,这是二叉树节点的最大度数。
在二叉树中,节点的度可以是0、1或2,但整个二叉树的度定义为2,因为这是树中任何节点的最大可能子节点数。
耦合性、内聚性名词意思
耦合性:模块间互相连接的紧密程度
内聚性:一个模块内部各元素间彼此结合的紧密程度
这里可以这么理解:
耦合就好比中国市场与国际市场的联系(一个主体与其他主体之间关系)
内聚就好比中国内部各地方市场之间的联系(一个主体内部各元素之间关系)
这里往深了说有很多,甚至牵扯到控制原理以及软件工程(开个坑先)
关系矩阵
这里是数据库的知识(本人学的程序设计所以第一次做一脸懵)
选择是针对行(数据记录)的(三行结果选其中几行数据记录)
投影是针对列(属性)的(三列数据投影过去几列属性)
整型变量初始化为0
static静态变量可以做到默认在未赋值情况取0
auto未赋值情况是默认的瞎取(平时int a等价于auto int a)
register是用寄存器存储某个变量(用的很少)
位运算
以下是C语言中可用的位运算符及其用途:
-
按位与(&)
- 运算规则:两个位都为1时,结果为1,否则为0。
- 示例:
5 & 3
的结果是1
。0101 (5的二进制) 0011 (3的二进制) ---- 0001 (结果为1)
-
按位或(|)
- 运算规则:两个位中只要有一个为1,结果就为1,否则为0。
- 示例:
5 | 3
的结果是7
。0101 (5的二进制) 0011 (3的二进制) ---- 0111 (结果为7)
-
按位异或(^)
- 运算规则:两个位不同,结果为1,相同则为0。
- 示例:
5 ^ 3
的结果是6
。0101 (5的二进制) 0011 (3的二进制) ---- 0110 (结果为6)
-
按位取反(~)
- 运算规则:将位从0变为1,或将位从1变为0。
- 示例:
~5
的结果是6
(假设是8位系统)。0101 (5的二进制) ---- 1010 (结果为~5,即-6)
-
左移(<<)
- 运算规则:将位向左移动指定的位数,右侧补0。
- 示例:
5 << 1
的结果是10
。0101 (5的二进制) ---- 1010 (结果为10)
-
右移(>>)
- 运算规则:将位向右移动指定的位数,左侧根据符号位进行填充(对于无符号类型,左侧补0)。
- 示例:
5 >> 1
的结果是2
。0101 (5的二进制) ---- 0010 (结果为2)
其中左移右移有快速计算的方法,不用背数字的二进制
左移n位-->原数字乘以2的n次幂
右移n位-->原数字除以2的n次幂
函数传参是复制
在c语言里面,函数的参数是复制过来的,还有就是指针的坑
这里就是int *c是个坑
这道题可以看看这篇博客 ,就会发现上面这个写法啥也不是,把两种杂糅在一起,当然就是什么也没交换(交换了也传不出来结果)
交换了但是没有从函数中传出来
正确的交换(注意中间变量t的类型不是指针),只有这个相当于真正的修改了指针指向的内容
这次是指针的变化没有传出来
总结
二级坑还挺多,建议假期多去bilibili逛逛刷刷课,想要考前速通不太可能
以上均是本人理解,如有错误欢迎各位大佬评论区指出~