算法与和数据结构
vonmax007
To achieve victory we must mass our forces at the hub of all power & movement.The enemy's 'center of gravity'----Von Clausewitz
展开
-
网络流问题:最大流及其算法
一、概念引入首先要先清楚最大流的含义,就是说从源点到经过的所有路径的最终到达汇点的所有流量和。 流网络G=(V,E)是一个有向图,其中每条边(u,v)∈E均有一个非负容量c(u,v)>=0。如果(u,v)不属于E,则假定c(u,v)=0。流网络中有两个特别的顶点:源点s和汇点t。下图展示了一个流网络的实例(其中斜线左边的数字表示实际边上的流,右边的数字表示边的最大容量原创 2017-03-22 16:25:34 · 67186 阅读 · 14 评论 -
树、森林和二叉树的转换
树转换为二叉树(1)加线。在所有兄弟结点之间加一条连线。(2)去线。树中的每个结点,只保留它与第一个孩子结点的连线,删除它与其它孩子结点之间的连线。(3)层次调整。以树的根节点为轴心,将整棵树顺时针旋转一定角度,使之结构层次分明。(注意第一个孩子是结点的左孩子,兄弟转换过来的孩子是结点的右孩子) 森林转换为二叉树(1)把每棵树转换为二叉树。(2原创 2017-07-23 17:15:20 · 3975 阅读 · 0 评论 -
二叉排序树
二叉排序树又称“二叉查找树”、“二叉搜索树”。二叉排序树:或者是一棵空树,或者是具有下列性质的二叉树:1. 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2. 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3. 它的左、右子树也分别为二叉排序树。 二叉排序树通常采用二叉链表作为存储结构。中序遍历二叉排序树可得到一个依据关键字的有序序列,一个无序序列可以通过构原创 2017-07-23 17:19:25 · 4348 阅读 · 0 评论 -
静态查找表与动态查找表
一、静态查找表1.顺序表查找顺序查找(Sequential Search)又称为线性查找,是一种最简单的查找方法。查找过程如下:从线性表的一端开始顺序扫描线性表,依次将扫描到的结点关键字和给定值进行比较。若当前扫描到的结点关键字与给定值相等,则查找成功;若扫描结束后,仍未能找到关键字等于给定值的结点,则查找失败。2.有序表查找(折半查找)当静态查找表为有序表示,那么可以使用折半查找算法原创 2017-07-23 17:26:42 · 5917 阅读 · 0 评论 -
带优先级且不允许连续嵌套的括号匹配
题目描述:输入一个字符串比如{[(2+3)(1-3)] + 4}(14-3),分析它的括号使用是否正确 括号有三种,小括号(),中括号[],大括号{} 正确的括号使用必须满足以下条件(和数学上定义一致): 1) 左右括号必须匹配 2) 每一种类型括号只能和同一类型的括号匹配,即(和)匹配 [和]匹配 {和}匹配 3) 括号有优先级,小括号在最内层,中括号必须嵌套在小括号外面,大括号必原创 2017-07-24 20:23:15 · 6867 阅读 · 1 评论 -
线程与进程
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.2.关系一个线程可以创建和撤销另一个线原创 2017-07-25 19:06:03 · 4587 阅读 · 0 评论 -
数据库索引的实现原理
强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1说白了,索引问题就是一个查找问题。。。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查转载 2017-09-12 02:08:58 · 239 阅读 · 0 评论