代码直接从QQ空间搬过来
#include
using namespace std;
#define UNVISITED 0;
#define VISITED 1;
class Edge {
public:
int start,end;
int weight;
Edge(){
start=end=weight=0;
}
Edge(int st,int en,int w){
start=st;
end=en;
weight=w;
}
bool operator > (Edge oneEdge){
if(weight>oneEdge.weight)
return true;
else
return false;
}
bool operator < (Edge oneEdge){
if(weight
0 && oneEdge.end>=0)
return true;
else
return false;
}
int StartVertex(Edge oneEdge) {//返回oneEdge的始点
return oneEdge.start;
}
int EndVertex (Edge oneEdge) {
return oneEdge.end;
}
int Weight(Edge oneEdge) {
return oneEdge.weight;
}
virtual void setEdge(int start,int end,int weight)=0;
virtual void delEdge(int start,int end)=0;
};
class AdjGraph: public Graph
{
private :
int **matrix;
public :
AdjGraph(int verticesNum):Graph(verticesNum) {
int i,j;
matrix=(int **) new int*[vertexNum];
for(i=0;i