16
16
17
17
📚 本仓库是面向 C/C++ 技术方向校招求职者、初学者的基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。
18
18
19
- 💡 侧边目录支持方式:[ 📚 Docsify 文档] ( https://interview.huihut.com ) 、[ Github + TOC 导航] ( https://github.com/jawil/GayHub ) ([ TOC预览.png] ( https://raw.githubusercontent. com/huihut/interview/master/images/TOC预览.png ) )
19
+ 💡 侧边目录支持方式:[ 📚 Docsify 文档] ( https://interview.huihut.com ) 、[ Github + TOC 导航] ( https://github.com/jawil/GayHub ) ([ TOC预览.png] ( https://gitee. com/huihut/interview/raw /master/images/TOC预览.png ) )
20
20
21
- 📄 保存为 PDF 方式:使用 Chrome 浏览器打开 <a href =" https://interview.huihut.com " >📚 Docsify 文档</a > 页面,缩起左侧目录-右键 - 打印 - 选择目标打印机是另存为PDF - 保存([ 打印预览.png] ( https://raw.githubusercontent. com/huihut/interview/master/images/打印预览.png ) )
21
+ 📄 保存为 PDF 方式:使用 Chrome 浏览器打开 <a href =" https://interview.huihut.com " >📚 Docsify 文档</a > 页面,缩起左侧目录-右键 - 打印 - 选择目标打印机是另存为PDF - 保存([ 打印预览.png] ( https://gitee. com/huihut/interview/raw /master/images/打印预览.png ) )
22
22
23
23
🙏 仓库内容如有错误或改进欢迎 issue 或 pr,建议或讨论可在 [ #12 ] ( https://github.com/huihut/interview/issues/12 ) 提出。由于本人水平有限,仓库中的知识点有来自本人原创、读书笔记、书籍、博文等,非原创均已标明出处,如有遗漏,请 issue 提出。本仓库遵循 [ CC BY-NC-SA 4.0(署名 - 非商业性使用 - 相同方式共享)] ( https://github.com/huihut/interview/blob/master/LICENSE ) 协议,转载请注明出处,不得用于商业目的。
24
24
@@ -763,7 +763,7 @@ int main()
763
763
764
764
面向对象程序设计(Object-oriented programming,OOP)是种具有对象概念的程序编程典范,同时也是一种程序开发的抽象方针。
765
765
766
- ![ 面向对象特征] ( https://raw.githubusercontent. com/huihut/interview/master/images/面向对象基本特征.png )
766
+ ![ 面向对象特征] ( https://gitee. com/huihut/interview/raw /master/images/面向对象基本特征.png )
767
767
768
768
面向对象三大特征 —— 封装、继承、多态
769
769
@@ -1362,7 +1362,7 @@ typedef struct {
1362
1362
} SqStack;
1363
1363
```
1364
1364
1365
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/SqStack.png )
1365
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/SqStack.png )
1366
1366
1367
1367
#### 队列(Sequence Queue)
1368
1368
@@ -1381,15 +1381,15 @@ typedef struct {
1381
1381
1382
1382
非循环队列图片
1383
1383
1384
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/SqQueue.png )
1384
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/SqQueue.png )
1385
1385
1386
1386
` SqQueue.rear++ `
1387
1387
1388
1388
##### 循环队列
1389
1389
1390
1390
循环队列图片
1391
1391
1392
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/SqLoopStack.png )
1392
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/SqLoopStack.png )
1393
1393
1394
1394
` SqQueue.rear = (SqQueue.rear + 1) % SqQueue.maxSize `
1395
1395
@@ -1408,7 +1408,7 @@ typedef struct {
1408
1408
} SqList;
1409
1409
```
1410
1410
1411
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/SqList.png )
1411
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/SqList.png )
1412
1412
1413
1413
1414
1414
### 链式结构
@@ -1430,27 +1430,27 @@ typedef struct LNode {
1430
1430
1431
1431
链队列图片
1432
1432
1433
- 
1433
+ 
1434
1434
1435
1435
#### 线性表的链式表示
1436
1436
1437
1437
##### 单链表(Link List)
1438
1438
1439
1439
单链表图片
1440
1440
1441
- 
1441
+ 
1442
1442
1443
1443
##### 双向链表(Du-Link-List)
1444
1444
1445
1445
双向链表图片
1446
1446
1447
- 
1447
+ 
1448
1448
1449
1449
##### 循环链表(Cir-Link-List)
1450
1450
1451
1451
循环链表图片
1452
1452
1453
- 
1453
+ 
1454
1454
1455
1455
### 哈希表
1456
1456
@@ -1495,7 +1495,7 @@ typedef struct {
1495
1495
}HashTable;
1496
1496
```
1497
1497
1498
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/HashTable.png )
1498
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/HashTable.png )
1499
1499
1500
1500
### 递归
1501
1501
@@ -1543,7 +1543,7 @@ typedef struct GLNode {
1543
1543
} *GList, GLNode;
1544
1544
```
1545
1545
1546
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/GeneralizedList1.png )
1546
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/GeneralizedList1.png )
1547
1547
1548
1548
##### 扩展线性链表存储表示
1549
1549
@@ -1566,7 +1566,7 @@ typedef struct GLNode1 {
1566
1566
} *GList1, GLNode1;
1567
1567
```
1568
1568
1569
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/GeneralizedList2.png )
1569
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/GeneralizedList2.png )
1570
1570
1571
1571
### 二叉树
1572
1572
@@ -1599,13 +1599,13 @@ typedef struct BiTNode
1599
1599
1600
1600
二叉树顺序存储图片
1601
1601
1602
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/SqBinaryTree.png )
1602
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/SqBinaryTree.png )
1603
1603
1604
1604
##### 链式存储
1605
1605
1606
1606
二叉树链式存储图片
1607
1607
1608
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/LinkBinaryTree.png )
1608
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/LinkBinaryTree.png )
1609
1609
1610
1610
#### 遍历方式
1611
1611
@@ -1650,7 +1650,7 @@ typedef struct BiTNode
1650
1650
1651
1651
平衡二叉树图片
1652
1652
1653
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/Self-balancingBinarySearchTree.png )
1653
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/Self-balancingBinarySearchTree.png )
1654
1654
1655
1655
##### 最小失衡树
1656
1656
@@ -1994,8 +1994,8 @@ B树/B+树 |O(log<sub>2</sub>n) | |
1994
1994
1995
1995
大端小端图片
1996
1996
1997
- ![ 大端序] ( https://raw.githubusercontent. com/huihut/interview/master/images/CPU-Big-Endian.svg.png )
1998
- ![ 小端序] ( https://raw.githubusercontent. com/huihut/interview/master/images/CPU-Little-Endian.svg.png )
1997
+ ![ 大端序] ( https://gitee. com/huihut/interview/raw /master/images/CPU-Big-Endian.svg.png )
1998
+ ![ 小端序] ( https://gitee. com/huihut/interview/raw /master/images/CPU-Little-Endian.svg.png )
1999
1999
2000
2000
##### 判断大端小端
2001
2001
@@ -2061,7 +2061,7 @@ int main()
2061
2061
2062
2062
计算机网络体系结构:
2063
2063
2064
- ![ 计算机网络体系结构] ( https://raw.githubusercontent. com/huihut/interview/master/images/计算机网络体系结构.png )
2064
+ ![ 计算机网络体系结构] ( https://gitee. com/huihut/interview/raw /master/images/计算机网络体系结构.png )
2065
2065
2066
2066
### 各层作用及协议
2067
2067
@@ -2140,13 +2140,13 @@ E 类 | 前五位固定为 11110,后面保留为今后所用
2140
2140
2141
2141
IP 数据报格式:
2142
2142
2143
- ![ IP 数据报格式] ( https://raw.githubusercontent. com/huihut/interview/master/images/IP数据报格式.png )
2143
+ ![ IP 数据报格式] ( https://gitee. com/huihut/interview/raw /master/images/IP数据报格式.png )
2144
2144
2145
2145
#### ICMP 网际控制报文协议
2146
2146
2147
2147
ICMP 报文格式:
2148
2148
2149
- ![ ICMP 报文格式] ( https://raw.githubusercontent. com/huihut/interview/master/images/ICMP报文格式.png )
2149
+ ![ ICMP 报文格式] ( https://gitee. com/huihut/interview/raw /master/images/ICMP报文格式.png )
2150
2150
2151
2151
应用:
2152
2152
* PING(Packet InterNet Groper,分组网间探测)测试两个主机之间的连通性
@@ -2216,11 +2216,11 @@ TCP 如何保证可靠传输:
2216
2216
2217
2217
TCP 报文结构
2218
2218
2219
- ![ TCP 报文] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP报文.png )
2219
+ ![ TCP 报文] ( https://gitee. com/huihut/interview/raw /master/images/TCP报文.png )
2220
2220
2221
2221
TCP 首部
2222
2222
2223
- ![ TCP 首部] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP首部.png )
2223
+ ![ TCP 首部] ( https://gitee. com/huihut/interview/raw /master/images/TCP首部.png )
2224
2224
2225
2225
TCP:状态控制码(Code,Control Flag),占 6 比特,含义如下:
2226
2226
* URG:紧急比特(urgent),当 ` URG=1 ` 时,表明紧急指针字段有效,代表该封包为紧急封包。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据), 且上图中的 Urgent Pointer 字段也会被启用。
@@ -2244,11 +2244,11 @@ TCP:状态控制码(Code,Control Flag),占 6 比特,含义如下:
2244
2244
2245
2245
UDP 报文结构
2246
2246
2247
- ![ UDP 报文] ( https://raw.githubusercontent. com/huihut/interview/master/images/UDP报文.png )
2247
+ ![ UDP 报文] ( https://gitee. com/huihut/interview/raw /master/images/UDP报文.png )
2248
2248
2249
2249
UDP 首部
2250
2250
2251
- ![ UDP 首部] ( https://raw.githubusercontent. com/huihut/interview/master/images/UDP首部.png )
2251
+ ![ UDP 首部] ( https://gitee. com/huihut/interview/raw /master/images/UDP首部.png )
2252
2252
2253
2253
> TCP/UDP 图片来源于:< https://github.com/JerryC8080/understand-tcp-udp >
2254
2254
@@ -2285,7 +2285,7 @@ TCP 是一个基于字节流的传输服务(UDP 基于报文的),“流”
2285
2285
2286
2286
利用可变窗口进行流量控制
2287
2287
2288
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/利用可变窗口进行流量控制举例.png )
2288
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/利用可变窗口进行流量控制举例.png )
2289
2289
2290
2290
#### TCP 拥塞控制
2291
2291
@@ -2302,17 +2302,17 @@ TCP 是一个基于字节流的传输服务(UDP 基于报文的),“流”
2302
2302
2303
2303
TCP的拥塞控制图
2304
2304
2305
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP拥塞窗口cwnd在拥塞控制时的变化情况.png )
2306
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/快重传示意图.png )
2307
- ![ ] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP的拥塞控制流程图.png )
2305
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/TCP拥塞窗口cwnd在拥塞控制时的变化情况.png )
2306
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/快重传示意图.png )
2307
+ ![ ] ( https://gitee. com/huihut/interview/raw /master/images/TCP的拥塞控制流程图.png )
2308
2308
2309
2309
#### TCP 传输连接管理
2310
2310
2311
- > 因为 TCP 三次握手建立连接、四次挥手释放连接很重要,所以附上《计算机网络(第 7 版)-谢希仁》书中对此章的详细描述:< https://raw.githubusercontent. com/huihut/interview/master/images/TCP-transport-connection-management.png >
2311
+ > 因为 TCP 三次握手建立连接、四次挥手释放连接很重要,所以附上《计算机网络(第 7 版)-谢希仁》书中对此章的详细描述:< https://gitee. com/huihut/interview/raw /master/images/TCP-transport-connection-management.png >
2312
2312
2313
2313
##### TCP 三次握手建立连接
2314
2314
2315
- ![ UDP 报文] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP三次握手建立连接.png )
2315
+ ![ UDP 报文] ( https://gitee. com/huihut/interview/raw /master/images/TCP三次握手建立连接.png )
2316
2316
2317
2317
【TCP 建立连接全过程解释】
2318
2318
@@ -2333,11 +2333,11 @@ TCP的拥塞控制图
2333
2333
2334
2334
【答案三】为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。
2335
2335
2336
- > [ 《计算机网络(第 7 版)-谢希仁》] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP-transport-connection-management.png )
2336
+ > [ 《计算机网络(第 7 版)-谢希仁》] ( https://gitee. com/huihut/interview/raw /master/images/TCP-transport-connection-management.png )
2337
2337
2338
2338
##### TCP 四次挥手释放连接
2339
2339
2340
- ![ UDP 报文] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP四次挥手释放连接.png )
2340
+ ![ UDP 报文] ( https://gitee. com/huihut/interview/raw /master/images/TCP四次挥手释放连接.png )
2341
2341
2342
2342
【TCP 释放连接全过程解释】
2343
2343
@@ -2370,7 +2370,7 @@ TCP的拥塞控制图
2370
2370
2371
2371
TCP 有限状态机图片
2372
2372
2373
- ![ TCP 的有限状态机] ( https://raw.githubusercontent. com/huihut/interview/master/images/TCP的有限状态机.png )
2373
+ ![ TCP 的有限状态机] ( https://gitee. com/huihut/interview/raw /master/images/TCP的有限状态机.png )
2374
2374
2375
2375
### 应用层
2376
2376
@@ -2468,7 +2468,7 @@ TRACE | 回显服务器收到的请求,主要用于测试或诊断
2468
2468
2469
2469
> [ Linux Socket 编程(不限 Linux)] ( https://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html )
2470
2470
2471
- ![ Socket 客户端服务器通讯] ( https://raw.githubusercontent. com/huihut/interview/master/images/socket客户端服务器通讯.jpg )
2471
+ ![ Socket 客户端服务器通讯] ( https://gitee. com/huihut/interview/raw /master/images/socket客户端服务器通讯.jpg )
2472
2472
2473
2473
2474
2474
#### Socket 中的 read()、write() 函数
@@ -3077,11 +3077,11 @@ LoadLibrary 与 FreeLibrary 流程图
3077
3077
3078
3078
##### LoadLibrary
3079
3079
3080
- ![ WindowsLoadLibrary] ( https://raw.githubusercontent. com/huihut/interview/master/images/WindowsLoadLibrary.png )
3080
+ ![ WindowsLoadLibrary] ( https://gitee. com/huihut/interview/raw /master/images/WindowsLoadLibrary.png )
3081
3081
3082
3082
##### FreeLibrary
3083
3083
3084
- ![ WindowsFreeLibrary] ( https://raw.githubusercontent. com/huihut/interview/master/images/WindowsFreeLibrary.png )
3084
+ ![ WindowsFreeLibrary] ( https://gitee. com/huihut/interview/raw /master/images/WindowsFreeLibrary.png )
3085
3085
3086
3086
#### DLL 库的编写(导出一个 DLL 模块)
3087
3087
0 commit comments