最近在做图的一些计算。对图的相关算法自认为理解又稍微深入了一点。首先谈谈图的类型,从边的数量和顶点的数量大体可以确定这个是图是稀疏图还是稠密图,对图的类型的确定很重要的,因为这个对你后面数据结构的具体实现是有影响的。其次谈谈图的搜索问题,最基本的搜索就是深度优先搜索(DFS)和广度优先搜索(BFS)这两个了。其实这两个算法在实现时也就是采用的数据结构不一样而已,一个是采用栈(Stack),一个是采用队列(Queue),其实这里的数据结构都是采用一些特殊的数据结构而已。一个是FILO的Stack,一个是采用FIFO的Queue,未访问过的顶点都是放在Stack和Queue里的。对这些顶点的处理则采用FILO和FIFO的原则。OK,如果我们现在把未访问过的顶点的放进一个容器里,之后按照一定的规则取出这些顶点,那么就得到另一些图的算法了。如果是随机取出的,那么就是随机游走的算法了。后面的最小生成树,最短路径的算法都可以看作在这些基础上的算法。