摘要: 重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 没做出来, 抄牛客讨论里的答案, 解题关 阅读全文
posted @ 2019-02-21 20:57 张飘扬 阅读(170) 评论(0) 推荐(0) 编辑
摘要: tcpdump 常用命令解释 tcpdump -ieth1 -tttt -s0 -X -vvvv -c2 '((tcp) and ((port 8080) and ((src 10.64.108.37) or (dst 10.64.108.37))))' -i: 指定网卡抓包 -X: 以 16 进制 阅读全文
posted @ 2021-07-31 14:29 张飘扬 阅读(519) 评论(0) 推荐(0) 编辑
摘要: 空接口与非空接口结构体 struct Eface // interface 无方法时底层数据结果 { Type* type; void* data; }; struct Type { uintptr size; // 类型的大小 uint32 hash; uint8 _unused; uint8 a 阅读全文
posted @ 2021-07-25 12:44 张飘扬 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 大并发服务器框架 大并发服务器设计目标 1. 高性能(High Performance). 要求编写出来的服务器能够最大限度发挥机器性能, 使得机器在满负荷的情况下能够处理尽可能多的并发请求, 对于大量并发请求能够及时快速做出响应 2. 高可用(High Availability). 要求服务器7\ 阅读全文
posted @ 2019-09-19 10:18 张飘扬 阅读(1277) 评论(0) 推荐(0) 编辑
摘要: 关系的完整性约束 实体完整性: 主键不为空 参照完整性: 或为空, 或者等于另一个关系的主码值 用户定义完整性: 用于设置某个属性的取值范围 SQL即Structured Query Language DDL(Data Definition Language数据定义语言) 用来建立数据库、数据库对象 阅读全文
posted @ 2019-09-10 22:54 张飘扬 阅读(353) 评论(0) 推荐(0) 编辑
摘要: sort默认从小到大 排序普通类型 排序vector 常用函数 二维数组的定义 deque 常用函数 特点 1. 支持随机访问,即支持[ ]以及at(),但是性能没有vector好。 2. 可以在内部进行插入和删除操作,但性能不及list。 3. deque两端都能够快速插入和删除元素,而vecto 阅读全文
posted @ 2019-08-29 07:32 张飘扬 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 内连接、外连接、自然连接 自然连接: 不需要连接条件, 要求连接的两表属性相同, 并在结果集中消除重复的属性列 内连接: 连接的两表相同, 手动添加连接条件 左外连接: 在自然连接的基础之上, 保留左表中要舍弃的数据在结果集中 右外连接: 在自然连接的基础之上, 保留右表中要舍弃的数据在结果集中 全 阅读全文
posted @ 2019-08-29 07:31 张飘扬 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 大并发服务器框架 大并发服务器设计目标 1. 高性能(High Performance). 要求编写出来的服务器能够最大限度发挥机器性能, 使得机器在满负荷的情况下能够处理尽可能多的并发请求, 对于大量并发请求能够及时快速做出响应 2. 高可用(High Availability). 要求服务器7\ 阅读全文
posted @ 2019-08-29 07:30 张飘扬 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 静态多态和动态多态优缺点 动态多态的设计思想:对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口。各个子类重写这些虚函数,以完成具体的功能。客户端的代码(操作函数)通过指向基类的引用或指针来操作这些对象,对虚函数的调用会自动绑定到实际提供的子类 阅读全文
posted @ 2019-08-29 07:29 张飘扬 阅读(348) 评论(0) 推荐(0) 编辑
摘要: fork SIGCHILD信号 "mmap共享存储映射(存储I/O映射)系列详解" 示例程序 普通全局变量没有共享, 但是地址空间相同: "fork_1.c" 孤儿进程: "fork_2.c" 僵尸进程: "fork_3.c" pipe 作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数 阅读全文
posted @ 2019-08-29 07:28 张飘扬 阅读(341) 评论(0) 推荐(0) 编辑
摘要: "关于 TCP 并发连接的几个思考题与试验" TCP 源端口号与目的端口号: 源端口号与目的端口号, 加上IP首部的源IP地址和目的IP地址唯一确定一个TCP连接 序号: 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流编号 确认号: 仅当ACK标志位1时有效. 表示期望下一个 阅读全文
posted @ 2019-08-29 07:27 张飘扬 阅读(631) 评论(0) 推荐(0) 编辑
摘要: C的内存分配 32bitCPU可寻址4G线性空间, 每个进程都有各自独立的4G逻辑地址, 其中0~3G是用户态空间, 3~4G是内核空间, 不同进程相同的逻辑地址会映射到不同的物理地址中. 其逻辑地址其划分如下: 正文段(code segment/text segment, .text段): 或称代 阅读全文
posted @ 2019-08-29 07:26 张飘扬 阅读(679) 评论(0) 推荐(0) 编辑
摘要: 基本排序算法 基于比较的排序 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 "冒泡排序" 选择排序 外层从0开始默认outer是最小数的下标, 内存从outer+1位置开始遍历, 不稳定, 如{ 3, 3, 3, 2 阅读全文
posted @ 2019-08-10 16:05 张飘扬 阅读(844) 评论(0) 推荐(1) 编辑
摘要: 基本排序算法 冒泡排序 没什么可说的, 改进方法就是加一个标志位防止有序后重复遍历. 由于需要遍历两次, 所以时间复杂度O(N^2) 传送门 "冒泡排序" 选择排序 外层从0开始默认outer是最小数的下标, 内存从outer+1位置开始遍历, 不稳定, 如{ 3, 3, 3, 2 }, 当比较最后 阅读全文
posted @ 2019-04-26 09:47 张飘扬 阅读(531) 评论(0) 推荐(0) 编辑
摘要: C include include include include include include include include include "threadpool.h" define DEFAULT_TIME 10 / 10s检测一次 / define MIN_WAIT_TASK_NUM 1 阅读全文
posted @ 2019-04-20 09:45 张飘扬 阅读(239) 评论(0) 推荐(0) 编辑
摘要: epoll 服务器 监听 fd 可读 epoll返回 read 小写转大写 write epoll继续监听 反应堆模型 epoll 服务器 监听 cfd 可读 epoll返回 read cfd从树上摘下 设置监听cfd写时间(滑动窗口), 操作 小写转大写 等待epoll_wait返回 回写客户端 阅读全文
posted @ 2019-04-19 21:52 张飘扬 阅读(735) 评论(1) 推荐(1) 编辑
摘要: `ssize_t read(int fildes, void buf, size_t nbyte);` 返回值: 0: 实际读到的字节数 = 0: 读完数据(读文件, 管道, socket末尾 对端关闭, 对端未关闭会一直等待) 1: 异常: errno == EINTR被信号中断, 重启或者退出 阅读全文
posted @ 2019-04-19 21:51 张飘扬 阅读(4004) 评论(0) 推荐(0) 编辑
摘要: dup与dup2 改变已经打开的文件的属性 变参数函数 复制一个已经有的文件描述符 int ret = fcntl(fd, F_DUPFD); 获取/设置文件状态标志 open的flags参数 (1)获取文件状态标识 int flag = fcntl(fd, F_GETFL); (2)设置文件状态标 阅读全文
posted @ 2019-04-19 21:50 张飘扬 阅读(176) 评论(0) 推荐(0) 编辑
摘要: [toc] stat/lstat stat穿透 lstat不穿透 两者主要的区别在于连接文件 st_mode: 文件的类型和存取权限 获取文件大小测试 权限测试 access 测试当前用户指定文件是否具有某种属性 当前用户, 使用哪个用户调用这个函数, 这个用户就是当前用户 参数: pathname 阅读全文
posted @ 2019-04-19 21:48 张飘扬 阅读(301) 评论(0) 推荐(0) 编辑
摘要: [toc] chdir path: 切换的路径 getcwd 参数: buf: 缓冲区, 存储当前的工作目录 size: 缓存区大小 返回值: 成功: 当前的工作目录 失败: NULL C include include include include include include int mai 阅读全文
posted @ 2019-04-19 21:48 张飘扬 阅读(377) 评论(0) 推荐(0) 编辑
摘要: poll 文件描述符突破1024, 修改配置文件 监听和返回集合分离 搜索范围变小 如果不再监控某个文件描述符时, 可以把pollfd中, fd设置为 1, 破灵力不再监控此pollfd, 下次返回时, 把revents设置为0 返回值: 返回满足条件事件数 参数: fds: 数组的首地址 ndfs 阅读全文
posted @ 2019-04-19 21:43 张飘扬 阅读(747) 评论(0) 推荐(0) 编辑