![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
暑期实训
JackJake
这个作者很懒,什么都没留下…
展开
-
2.2.系统及网络编程——网络基础巩固及Socket网络编程(二)
2.2.系统及网络编程——网络基础巩固及Socket网络编程(二)咕了好几天了,应该要补一补了,这篇是对于socket编程的另一个实例,主要加入了文件信息的传递文件的读写操作文件流打开:FILE *fopen(const char *pathname, const char *mode);读:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);写:size_t fwrite(const void *ptr, size_原创 2020-07-18 17:42:15 · 98 阅读 · 0 评论 -
2.1.系统及网络编程——网络基础巩固及Socket网络编程(一)
2.1.Socket编程基础基础知识运输层协议概述TCP: 传输控制协议面向连接,可靠的数据传输协议UDP: 用户数据报协议无连接,不可靠的数据传输协议IP: 尽力而为交付服务进程寻址socket是进程和运输层之间的接口,进程要发送数据,必须经由socket,交给运输层去交付头部格式TCP头部格式:源端口号:16位,目标端口号:16位序列号:32位确认应答:32位首部长度:4位,保留:6位,URG,ACK,PSH,SYN,FIN,窗口大小:16位校验和:16位,紧急指针:16位原创 2020-07-15 21:00:28 · 142 阅读 · 0 评论 -
1.5.C语言基础进阶——快速排序及其优化
1.5.C语言基础进阶——快速排序及其优化快排的基础知识快速排序三步: 找到基准值位置、排序左半边、排序右半边找到基准值位置: partation,头尾指针交替查找直到重合,即为基准值位置,并递归进行后续的步骤V1:最基本的快速排序的代码实现void quick_sort_v1(int *arr, int l, int r) { if (l >= r) return ; int x = l, y = r, z = arr[l]; //x为头指针,y为尾指针 whil原创 2020-07-11 18:38:35 · 406 阅读 · 1 评论 -
1.4.C语言基础进阶——红黑树
C语言基础进阶——红黑树红黑树是一类平衡二叉排序树基本介绍五个条件每个节点非黑即红根节点是黑色叶节点(NIL)是黑色NIL即NULL is legal是一个结点,访问是合法的在图中一般不会画出来如果一个节点是红色,则它的两个子结点都是黑色的辅助控制红黑树的次要条件从根节点出发到所有叶节点路径上,黑色节点数量相同控制红黑树的关键条件最长路径最多为最短路径的两倍对于红黑树的某高度下最少结点数目low(H) = low(H - 1) + low(H / 2) + 1原创 2020-07-09 20:35:36 · 260 阅读 · 1 评论 -
1.3.C语言基础进阶——AVL树的原理及实现
1.3.C语言基础进阶——AVL树的原理及实现今天的内容比昨天跟的要好,但是代码实践部分速度对于我来说太快了,这个部分没有跟上,课下补的二叉排序树数据结构 = 结构定义 + 结构操作,结构操作维护结构定义又叫做二叉搜索树性质: 左子树 < 根节点,右子树 > 根节点基本操作插入:每次插入会插入到叶子节点删除删除叶子节点:最简单,直接删除即可删除出度为1的节点:删除节点后,将其父节点与其子结点相连删除出度为2的节点首先找到该节点的前驱节点,即其左子树中最右节点将原创 2020-07-08 17:08:09 · 227 阅读 · 0 评论 -
1.2.C语言基础进阶——单元测试框架的开发
1.2.C语言基础进阶——单元测试框架的开发第二天开始就很有难度了……测试的意义对于测试的理解:通过测试 ≠ 没有bug通过测试 =概率性正确如何编写正确的程序正确的代码风格(开发)严谨的逻辑思维(开发)防御式编程习惯(开发)合理的测试用例(调试)Google Test的使用范例编译Google Testgithub项目网址:googletest,本范例环境为Ubuntu16.04首先clone下来项目git clone https://github.com/google原创 2020-07-07 18:58:39 · 489 阅读 · 0 评论 -
1.1.C语言基础进阶——预处理命令
1.1.C语言基础进阶——预处理命令因为假期实训的开始,另外也是偶然间想起来自己有个CSDN账户,便想开始试着写写博客,顺带着练习下Markdown语法本周主要是对于C语言基础进阶,对于巩固基础来说还是很重要的预处理命令简单来讲就是以#开头的一行语句主要进行了以下几种的讲解宏定义做简单的替换,并不会做运算对于这句话的理解很重要,在预编译时候,宏定义会被替换为对应的字符,本身并不会进行运算。#define N 1其中第一个参数为宏的标识符(名字),第二个参数为替换内容,可以为空定义原创 2020-07-06 16:51:26 · 175 阅读 · 0 评论