65,187
社区成员




#ifndef _PRIORITY_H_
#define _PRIORITY_H_
#include "graph.h"
struct Pri_Vertex
{
Pri_Vertex() : key(MAX_INT) {};
Pri_Vertex( Vertex v, int k = MAX_INT ) : ver(v), key(k) {};
Pri_Vertex operator=( const Pri_Vertex& v ) { return Pri_Vertex(v.ver, v.key); }
bool operator!=( const Pri_Vertex& v1 )
{
if( v1.ver.key != ver.key )
return true;
else
return false;
}
Vertex ver;
int key;
};
#ifndef _GRAPH_H_
#define _GRAPH_H_
#include <iostream>
#include "priority_queue.h"
using namespace std;
struct Vertex
{
friend class Graph;
Vertex( VERTEX_COLOR colr = WHITE, Arc* first = 0)
: verColr(colr), firstArc(first), dist(MAX_INT), parent(0) {};
Vertex(const Vertex& v)
: verColr(v.verColr), firstArc(v.firstArc), key(v.key), dist(v.dist), parent(v.parent) {};
Vertex operator=(const Vertex& v) { return Vertex(v); }
VERTEX_COLOR verColr;
Arc* firstArc;
int key;
int dist; // 与初始点的距离
Vertex* parent; // 父节点
};