图
文章平均质量分 62
fpk2014
没有什么可以说的
展开
-
C语言 图的领接矩阵与邻接表
领接矩阵使用一个V*V的布尔矩阵。当结点a与结点b有连接时,定义a行b列的元素值为true,否则为false。 所以我们需要一个V^2大小的数组。需要的内存空间要求很大。 注:以下图片取自:数据结构(七)图代码实现#include <stdio.h>#include <malloc.h>#include <memory.原创 2018-06-03 19:59:37 · 2504 阅读 · 0 评论 -
C语言 图的深度优化搜索
深度优先遍历简介实现过程代码实现深度优先遍历简介 深度优先遍历图的方法是,从图中某顶点v出发: (1)访问顶点v; (2)依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问; (3)若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所有顶点均被访问过为止。 ...原创 2018-06-04 21:56:23 · 909 阅读 · 0 评论 -
C语言 图的广度优化搜索
图的广度优化搜索简介实现过程代码实现图的广度优化搜索简介 所有因为展开节点而得到的子节点都会被加进一个先进先出的队列中。一般的实现里,其邻居节点尚未被检验过的节点会被放置在一个被称为 open 的容器中(例如队列或是链表),而被检验过的节点则被放置在被称为 closed 的容器中。(open-closed表)与深度优化搜索相比,深度优化搜索并不...原创 2018-06-05 02:17:40 · 298 阅读 · 0 评论 -
C语言 最短路径之Dijkstra算法 无向图
Dijkstra算法简介实现过程代码实现Dijkstra算法简介 Dijkstra算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。 实现过程Dijkstra算法和Prim算法非常相似(参照链接:C语言 Prim算法和Kruskal算法的实现和证明)从上面可以看出,Dijkstra算法只是比...原创 2018-06-12 15:39:19 · 10632 阅读 · 1 评论 -
C语言 拓补排序 有向无环图
拓补排序简介实现过程代码实现拓补排序简介 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前首先需要知道一个概念:入度。 通常指有向图中某点作为图中边的终点的次数之和。比如: ...原创 2018-06-13 11:58:51 · 905 阅读 · 0 评论 -
C语言 Prim算法和Kruskal算法的实现和证明
最小生成树简介原理Prim算法算法实现算法证明Kruskal算法算法实现算法证明最小生成树简介最小生成树(MST):给定一加权无向图,找出它的一颗最小生成树。 定义:图的最小生成树是它的一副含有其所有顶点的无环连通子图。一副加权图的最小生成树是它的一颗权值(树种所有边的权值之和)最小的生成树。我们约定: 1. 只考虑连通...原创 2018-06-06 17:15:06 · 3921 阅读 · 2 评论 -
C语言 优先队列
优先队列优先队列相比队列多了一个功能,就是自动排序代码实现#include <stdio.h>#include <malloc.h>#include <memory.h>#define QUETYPE chartypedef struct node { QUETYPE data; st原创 2018-06-07 21:57:54 · 2576 阅读 · 0 评论 -
C语言 union-find算法 图的连通性
连通分量代码实现ADTquick-find算法quick-union算法quick-find和quick-sort的完整代码连通分量任何连通图的连通分量只有一个,即是其自身,非连通的无向图有多个连通分量。 比如: 图(a)的连通分量只有一个,而图(b)的连通分量有6个。现在有数据如下,怎么判断有多少个连通分量? int e[10][...原创 2018-06-08 15:53:09 · 1152 阅读 · 3 评论