红黑树插入流程详解
红黑树平衡性原则 根结点是黑色(有的版本对根结点的颜色没有强制要求) 所有节点只能是红色或者黑色 所有的叶子节点都是黑色,这里说的叶子结点是 NULL 叶子结点 如果一个节点是红色的,那么它的两个孩子只能是黑色的(即不能同时出现两个连续的红色节点) 从任意的一个节点出发,到它的所有叶子节点路径上都包含相同数量的黑色节点 另外,看似使用全部黑色的节点也符合红黑树的规...
红黑树平衡性原则 根结点是黑色(有的版本对根结点的颜色没有强制要求) 所有节点只能是红色或者黑色 所有的叶子节点都是黑色,这里说的叶子结点是 NULL 叶子结点 如果一个节点是红色的,那么它的两个孩子只能是黑色的(即不能同时出现两个连续的红色节点) 从任意的一个节点出发,到它的所有叶子节点路径上都包含相同数量的黑色节点 另外,看似使用全部黑色的节点也符合红黑树的规...
存储字节数组(u8)数组时,涉及到的一些字符存储格式记录 说明 #[cfg(test)] mod test { #[test] pub fn test_character_encode() { /* * char 类型占据 4 个字节,支持所有的 Unicode 字符 * u8 类型占据 1 个字节,适用于所有的 AS...
使用火焰图分析程序性能瓶颈 介绍 ClickHouse 共有三种火焰图 CPU:显示代码中函数的 cpu 耗时,函数宽度与 cpu time 成正比。主要用于分析进程中的 cpu 瓶颈 Memory:显示代码中函数中申请内存的大小,函数宽度与 memory allocation 成正比。主要用于优化进程的内存占用。 Real:显示代码中函数的 duration 耗时,函...
rust 项目编译时关于 toolchain 切换问题的记录 背景 无意执行了更新工具链的命令,导致原有项目编译报错,报错的原因可能是新版本工具链在一些语法上要求更为严格,比如名称相似的 type 会报错 error[E0432]: unresolved import `zstd_sys::ZSTD_cParameter::ZSTD_c_experimentalParam6` ...
题目 原题 416.分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2: 输入:nums = [1,2,3,5] 输出:false 解释:数组不能分割成...
背景 PVE 是在 n100 主机安装的,已经配置了 1 个 openwrt,现在希望在内部安装一个 Windows 用来进行远程管理。正常情况下在配置了 wireguard 之后,异地就可以访问服务器集群资源,但是一旦 wireguard 不可靠,或者需要对 openwrt 局域网内部的某些 pve 集群进行运维的时候,这就需要有一个可以方便进行屏幕远程控制的中间跳板机器。 在安装 W...
为什么要扩容? 默认情况下,安装完 openwrt 之后,可用的磁盘空间少的可怜(编译的 openwrt 镜像有多大,可用空间就有多大)。 我们可以通过 PVE 直接给 openwrt 的磁盘进行扩容,并在 openwrt 系统中初始化这部分 free 的磁盘空间。 准备所需的软件 我们需要准备 cfdisk,如果没有 cfdisk 可以使用 opkg 安装。 opkg updat...
将 u8 数组转换为 Rust 中自定义的 Struct 过程中相关问题记录 大端序与小端序 程序中的多字节变量会被存储为连续的字节序列,比如 u32 类型就需要连续的 4 个字节,那么这里就涉及到对字节顺序的两种排列方式: 基础概念:最低有效字节(Least Significant Byte,LSB),最高有效字节(Most Significant Byte,MSB)。 ...
关于生命周期 所有权等概念在实际项目中的应用 范围:QueryExecutor 相关的生命周期,所有权问题 pub fn query_sentence_bitmap( index_path: &str, column_name: &str, sentence: &str, ) -> Result<Vec<u8>, ...
rust 集合理解