ACM之图论

 

实验数据: 

int dege[5][5] = {
    { 0, 9 ,6,-1,-1},
    {-1, 0, 4, 5,-1},
    {-1,-1, 0,-1, 7},
    { 3,-1,-1, 0,-1},
    {-1,-1,-1, 8, 0} };

 

  • DFS 深度优先搜索标记

  利用二维矩阵,存放图的信息,例如n个结点,那么图就是n*n大小,图分为有向图和无向图,在量化为矩阵的时候,区别就是一个是不对称的,无向是对称矩阵,然后用一个长度为n的一维矩阵存放,该节点是否被访问,由于未知该图的深度有多少,所以使用递归算法,在递归过程,通过标记矩阵判断该结点是否访问,未访问则进入下一层递归

 

int egde[5][5];//使用顶部的数据!
int pre[5] = { 0 },  tag=0;//存放结点被第几个访问,
void dfstag(int cur, int n) {
    pre[cur] = ++tag; //是否访问标记;第几个被访问;
    for (int i = 0; i < n; ++i) 
        if (edge[cur][i]>0&&pre[i]==0) {//未被访问,则进入,
            dfstag(i, n);
        }
}
int main() {
    dfstag(0, 5);
    for (int i = 0; i < 5; i++)
        cout << " " << pre[i];
    system("pause");
    return 0;
}

 

 

  • 无向图找桥

   

  • 无向图连通度

 

  • 最大团问题

 

  • 欧拉路径

 

  • Dijkstra数组实现

 

  • Dijkstra
  • BellmanFord单源最短路

转载于:https://www.cnblogs.com/yidiandianwy/p/11564034.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值