枚举
把一个事物所有可能的数值一一列举出来
算法
- 通俗定义:解题的方法和步骤
- 狭义定义:对存储数据的操作。对不同的存储结构,要完成某一功能所执行的操作是不一样的。这说明算法是依附于存储结构的,不同的存储结构,所执行的算法是不一样的。
- 广义定义:广义的算法也叫泛型,无论数据是怎样存储的,对该数据的操作都是一样的
我们至少可以通过两种结构存储数据
- 数组
优点:存取速度快
缺点:需要一个连续的很大的内存,插入和删除元素的效率很低
- 链表
优点:插入删除元素
缺点:查找某个位置的元素效率低
首节点:存放第一个有效数据的节点
尾节点:存放最后一个有效数据的节点
头结点
- 头结点的数据类型和首节点的类型是一摸一样的
- 头结点是首节点前面的那个节点
- 头结点并不存放有效数据
- 设置头结点的目的是为了方便对链表的操作
头指针:存放头结点地址的地址变量
位运算符
& 按位与,与&&逻辑与含义完全不同
| 按位或,与||逻辑或含义不同
~ 按位取反,~i就是把i变量所有二进制位取反
^ 按位异或,相同为0,不同为1
<< 按位左移,i<<3表示把i的二进制位左移3位,右边补0。左移n位相当于乘以2的n次方。前提是数据不能丢失
>> 按位右移,i>>3表示把i的二进制位右移3位,左边一般是0,也可能补1。右移n位相当于除以2的n次方。