数据结构--图论
图论(Graph Theory)是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。 基本概念 点和边 图由顶点和边构成,边用于连接两个点 顶点:通常用 V(vertex) 表示顶点集合 度(Degree):所有...
图论(Graph Theory)是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。 基本概念 点和边 图由顶点和边构成,边用于连接两个点 顶点:通常用 V(vertex) 表示顶点集合 度(Degree):所有...
二叉树 定义 二叉树(英语:Binary tree)是每个结点最多只有两个分支(子树)的树结构。通常分支被称作“左子树”或“右子树”。二叉树的分支具有左右次序,不能随意颠倒。 性质 二叉树中,第 $i$ 层最多有 $2^i-1$ 个结点。 如果二叉树的深度为 $K$,那么此二叉树最多有 $2^K-1$ 个结点。 二叉树中,终端结点数(叶子结点数)为 $n_0$,度为 2...
定义 贪心算法,又名贪婪法,是寻找最优解问题的常用方法(其实得到的往往是近似最优解),这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好/最优的选择(局部最有利的选择),并以此希望最后堆叠出的结果也是最好/最优的解。 基本步骤 步骤 1:从某个初始解出发; 步骤 2:采用迭代的过程,当可以向目标前进一步时,就根据局部最优策略,得到一部分解,...
定义 动态规划(Dynamic programming)是一种在数学、计算机科学和经济学中使用的,通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。 动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。 若要解一个给定问题,我们需要解其不同部分(即子问题),再合并子问题的解以得出原问题的解。 通常许多子问题非常相似,为此动态规划法试图...
前言 分段见《Operating Systems: Three Easy Pieces》学习笔记(十二) 分段 本文是对上述文章的补充 ROM 和 RAM ROM (Read Only Memory)程序存储器 ROM 全称 Read Only Memory,顾名思义,它是一种只能读出事先所存的数据的固态半导体存储器。ROM 中所存数据稳定,一旦存储数据就再也无法将之改变或者删除,...
定义 const 将修饰离它最近的对象(优先左边) 解释 Bjarne 在他的《The C++ Programming Language》里面给出过一个助记的方法 “以 * 分界,把一个声明从右向左读”。 注意语法,* 读作 pointer to (指向…的指针),const (常量) 是形容词,char (变量类型) 和 p (变量名) 当然都是名词。 con...
前言 阅读本文章前首先要具备一定的面向对象编程基础 本文仅用于帮助理解 OOP 的原理,如果可以,应该尽可能使用 C++ 来实现 OOP,与 C++ 相比,C 中的 OOP 可能很麻烦且容易出错,并且几乎没有性能优势 面向对象特性 面向对象编程 (Object-oriented programming,OOP) 是一种基于以下三个基本概念的设计方式: 封装(Encap...
HE-tunnel 使用HE的IPv6隧道解决访问谷歌Google时提示异常流量 CloudFlare-WARP WARP一键安装脚本 安装sock代理或ipv6隧道 WARP最强的地方在于网络环境非常好,远比HE-tunnel和Tor稳定 Tor apt install tor 默认开启sock代理,端口9050,可通过修改/etc/tor/torrc文件修改端口 如果...
架构 控制的倒置 (Inversion of Control) UML 状态机速成 基本的状态机概念 状态 状态图 事件 (Event) 动作和转换 (Action and Transition) 运行-到-完成...
远程过程调用(RPC) 最主要的抽象是基于远程过程调用(Remote Procedure Call),或简称 RPC 远程过程调用包都有一个简单的目标:使在远程机器上执行代码的过程像调用本地函数一样简单直接 RPC 系统通常有两部分:存根生成器(stub generator,有时称为协议编译器,protocol compiler)和运行时库(run-time library)。 存根...