?? graph.h
字號:
#ifndef gjrjgejggorgj
#define gjrjgejggorgj
#define UNVISITED 0
#define VISITED 1
#define INFINITY 9999999
#include"Edge.h"
class Graph
{
public:
int numVertex; //圖的頂點的個數(shù)
int numEdge; //圖的邊的個數(shù)
int *Mark; //Mark指針指向保存有圖的頂點的標志位的數(shù)組,標志位用來標記某頂點是否被訪問過
int *Indegree; //Indegree指針指向保存有圖的頂點的入度的數(shù)組
Graph(int numVert) //構(gòu)造函數(shù)
{
numVertex=numVert; //確定圖的頂點的個數(shù)
numEdge=0; //確定圖的邊數(shù)的個數(shù)
Indegree=new int[numVertex]; //為保存圖的頂點的入度申請數(shù)組,Indegree為數(shù)組指針
Mark=new int[numVertex]; //為圖的頂點的標志位申請數(shù)組,Mark為數(shù)組指針
for(int i=0;i<numVertex;i++) //確定圖的頂點的標志位和入度,即所有頂點的標志位初始化為未被訪問過,入度初始化為0
{
Mark[i]=UNVISITED;
Indegree[i]=0;
}
}
~Graph() //析構(gòu)函數(shù)
{
delete [] Mark; //釋放Mark數(shù)組
delete [] Indegree; //釋放Indegree數(shù)組
}
virtual Edge FirstEdge(int oneVertex)=0; //返回與頂點oneVertex相關(guān)聯(lián)的第一條邊
virtual Edge NextEdge(Edge preEdge)=0; //返回與邊PreEdge有相同關(guān)聯(lián)頂點oneVertex的下一條邊
int VerticesNum() //返回圖的頂點個數(shù)
{
return numVertex;
}
int EdgesNum() //返回圖的邊數(shù)
{
return numEdge;
}
bool IsEdge(Edge oneEdge) //如果oneEdge是邊則返回TRUE,否則返回FALSE
{
if(oneEdge.weight>0&&oneEdge.weight<INFINITY&&oneEdge.to>=0)
{
return true;
}
else
{
return false;
}
}
int FromVertex(Edge oneEdge) //返回邊oneEdge的始點
{
return oneEdge.from;
}
int ToVertex(Edge oneEdge) //返回邊oneEdge的終點
{
return oneEdge.to;
}
int Weight(Edge oneEdge) //返回邊oneEdge的權(quán)
{
return oneEdge.weight;
}
virtual void setEdge(int from,int to,int weight)=0;
virtual void delEdge(int from,int to)=0;
};
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -