代码思维导图
《代码思维导图》
一、编程基础
1.1 数据类型
1.1.1 基本数据类型
- 整型 (Integer):
- 有符号整型 (Signed Integers):
int
, short
, long
, long long
(C/C++)
- 无符号整型 (Unsigned Integers):
unsigned int
, unsigned short
, unsigned long
, unsigned long long
(C/C++)
- 浮点型 (Floating-point):
- 单精度浮点型 (Single-precision):
float
- 双精度浮点型 (Double-precision):
double
- 扩展精度浮点型 (Extended-precision):
long double
(C/C++)
- 字符型 (Character):
char
- ASCII
- Unicode (UTF-8, UTF-16, UTF-32)
- 布尔型 (Boolean):
bool
1.1.2 复合数据类型
- 数组 (Array):
- 字符串 (String):
- 字符数组
- 动态字符串 (例:
std::string
in C++, String
in Java)
- 结构体/类 (Struct/Class):
- 枚举 (Enum):
- 联合体 (Union):
1.2 运算符
1.2.1 算术运算符
+
(加)
-
(减)
*
(乘)
/
(除)
%
(取模/余数)
++
(自增)
--
(自减)
1.2.2 关系运算符
==
(等于)
!=
(不等于)
>
(大于)
<
(小于)
>=
(大于等于)
<=
(小于等于)
1.2.3 逻辑运算符
&&
(逻辑与)
||
(逻辑或)
!
(逻辑非)
1.2.4 位运算符
&
(按位与)
|
(按位或)
^
(按位异或)
~
(按位取反)
<<
(左移)
>>
(右移)
1.2.5 赋值运算符
=
(赋值)
+=
, -=
, *=
, /=
, %=
, &=
, |=
, ^=
, <<=
, >>=
(复合赋值)
1.2.6 其他运算符
sizeof
(获取大小)
? :
(三元运算符)
.
(成员访问)
->
(指针成员访问)
[]
(数组下标)
()
(函数调用)
1.3 控制结构
1.3.1 顺序结构
1.3.2 选择结构
if
语句
if-else
语句
if-else if-else
语句
switch
语句
1.3.3 循环结构
for
循环
while
循环
do-while
循环
break
语句 (跳出循环)
continue
语句 (跳过本次循环)
1.4 函数
- 函数定义
- 函数调用
- 函数参数
- 形参 (Formal parameters)
- 实参 (Actual parameters)
- 按值传递 (Pass by value)
- 按引用传递 (Pass by reference)
- 按指针传递 (Pass by pointer)
- 返回值
- 递归函数
- 函数重载 (Function Overloading)
1.5 指针 (C/C++)
- 指针变量
- 指针运算
- 指针与数组
- 指针与函数
- 动态内存分配 (
malloc
, calloc
, realloc
, free
in C; new
, delete
in C++)
二、面向对象编程 (OOP)
2.1 核心概念
- 封装 (Encapsulation):
- 将数据和方法捆绑在一起
- 隐藏内部实现细节
- 提供公共接口
- 继承 (Inheritance):
- 多态 (Polymorphism):
- 同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果
- 静态多态 (Static polymorphism): 函数重载,模板
- 动态多态 (Dynamic polymorphism): 虚函数,接口
2.2 类与对象
- 类的定义
- 对象的创建
- 成员变量 (Attributes)
- 成员函数 (Methods)
- 构造函数 (Constructor)
- 析构函数 (Destructor)
- 访问控制修饰符 (Access Modifiers):
2.3 继承与多态
- 单继承
- 多重继承 (Multiple Inheritance)
- 虚函数 (Virtual Function)
- 抽象类 (Abstract Class)
- 接口 (Interface)
三、数据结构与算法
3.1 数据结构
- 线性表 (Linear List):
- 数组 (Array)
- 链表 (Linked List):
- 单链表 (Singly Linked List)
- 双链表 (Doubly Linked List)
- 循环链表 (Circular Linked List)
- 栈 (Stack): LIFO (Last In First Out)
- 队列 (Queue): FIFO (First In First Out)
- 树 (Tree):
- 二叉树 (Binary Tree)
- 二叉搜索树 (Binary Search Tree)
- 平衡二叉树 (Balanced Binary Tree): AVL树, 红黑树
- 堆 (Heap): 优先队列
- B树 (B-Tree)
- 图 (Graph):
- 有向图 (Directed Graph)
- 无向图 (Undirected Graph)
- 邻接矩阵 (Adjacency Matrix)
- 邻接表 (Adjacency List)
- 哈希表 (Hash Table):
- 哈希函数 (Hash Function)
- 冲突解决 (Collision Resolution): 链地址法, 开放寻址法
3.2 算法
- 排序算法 (Sorting Algorithms):
- 冒泡排序 (Bubble Sort)
- 选择排序 (Selection Sort)
- 插入排序 (Insertion Sort)
- 归并排序 (Merge Sort)
- 快速排序 (Quick Sort)
- 堆排序 (Heap Sort)
- 计数排序 (Counting Sort)
- 桶排序 (Bucket Sort)
- 基数排序 (Radix Sort)
- 搜索算法 (Searching Algorithms):
- 线性搜索 (Linear Search)
- 二分搜索 (Binary Search)
- 深度优先搜索 (Depth-First Search, DFS)
- 广度优先搜索 (Breadth-First Search, BFS)
- 图算法 (Graph Algorithms):
- 最短路径算法 (Shortest Path Algorithms): Dijkstra算法, Floyd-Warshall算法
- 最小生成树算法 (Minimum Spanning Tree Algorithms): Prim算法, Kruskal算法
- 拓扑排序 (Topological Sort)
- 动态规划 (Dynamic Programming)
- 贪心算法 (Greedy Algorithm)
- 回溯算法 (Backtracking Algorithm)
四、软件工程
4.1 需求分析
4.2 设计
- 概要设计
- 详细设计
- UML (Unified Modeling Language)
4.3 编码
4.4 测试
4.5 部署
4.6 维护
五、常用工具
5.1 编辑器
- VS Code
- Sublime Text
- Atom
- Notepad++
- Vim
- Emacs
5.2 IDE (Integrated Development Environment)
- Visual Studio
- Eclipse
- IntelliJ IDEA
- Xcode
5.3 版本控制
- Git
- GitHub
- GitLab
- Bitbucket
5.4 调试工具
5.5 构建工具
- Make
- CMake
- Ant
- Maven
- Gradle
六、编程范式
6.1 命令式编程 (Imperative Programming)
6.2 声明式编程 (Declarative Programming)
- 侧重描述解决问题的目标,而不是具体步骤
- 函数式编程 (Functional Programming)
- 逻辑式编程 (Logic Programming)
6.3 面向对象编程 (Object-Oriented Programming)
6.4 事件驱动编程 (Event-Driven Programming)
6.5 并发编程 (Concurrent Programming)