zoukankan      html  css  js  c++  java
  • 静态邻接表dijkstra

    http://www.cnblogs.com/wuying/archive/2008/08/04/1259841.html
    复制代码
    //使用静态连接表实现dijkstra //路径无穷远,则返回-1;否则返回最短路径, #include <iostream> #include <queue> using namespace std; typedef struct {     long v;     long next;     long cost; }Edge; typedef struct {     long v;     long cost; }node; bool operator <(const node &a,const node &b) {     return a.cost>b.cost; } const long MAXN=100010; priority_queue<node> q; long p[MAXN];//MAIN函数里元素初始化为-1; Edge e[2*MAXN];//静态邻接表 bool vist[MAXN]; long Dijkstra(long Start,long End)//开始点,结束点 {     memset(vist,0,sizeof(vist));     while (!q.empty())     {         q.pop();     }     long cost=0;     node t;     t.cost=0;     t.v=Start;     q.push(t);     while (!q.empty())     {         t=q.top();         q.pop();         if (t.v==End)         {             break;         }         if (vist[t.v])         {             continue;         }         vist[t.v]=true;         long j;         for (j=p[t.v];j!=-1;j=e[j].next)         {             if (!vist[e[j].v])             {                 node temp;                 temp.v=e[j].v;                 temp.cost=e[j].cost+t.cost;                 q.push(temp);             }         }     }     if (t.v==End)     {         cost=t.cost;     }     else     {         cost=-1;     }     return cost; }
    复制代码
  • 相关阅读:
    subsonic资源聚合
    一些经典的框架
    小毛看传统图书行业
    商界传媒20092010 从容就业,激情创业(企业家走进北在)活动记
    Beijing Perl Workshop 2009
    智力更生小毛笔记&心得
    使用world 2007 或是windows live writer写blog的设置
    php技术准备
    我需要知道的技术常识
    重新分配ip
  • 原文地址:https://www.cnblogs.com/adodo1/p/4328005.html
Copyright © 2011-2022 走看看