//邻接表+优先队列+Dijkstra模版
#include <iostream>
#include <queue>
using namespace std;
#define MAXN 101
#define INF 999999
class Graph; //有向图
class Vnode; //头结点
class Arcnode //表结点
{
friend class Graph;
friend class Vnode;
private:
int v;
int weight;
Arcnode *next;
public:
void Arcnode_Init(int e,int w)
{
v=e;
weight=w;
next=NULL;
}
};
class Vnode //头结点
{
friend class Graph;
private:
int data;
Arcnode *firstarc;
public:
void Vnode_init(int d)
{
data=d;
firstarc=NULL;
}
};
class DIj_Node //用于求最短路时候的顶点
{
friend class Graph;
public:
int v;
int dis;
public:
void Node_init(int dn,int dw)
{
v=dn;
dis=dw;
}
friend bool operator < (const