⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph.h

📁 图的DFS遍历
💻 H
字号:
#define UNVISITED 0
#define VISITED 1
#define INFINITY 100000
class Edge{
public:
	int from;
	int to;
	int weight;
	void print()
	{
		cout<<"from:"<<from<<" to:"<<to<<endl;
	}


};
class Graph{
	friend class Edge;
public:
	int numVertex;
	int numEdge;
	int *Mark;
	int *Indegree;
	int *outdegree;
	Graph(int numVert)
	{
		numVertex=numVert;
		numEdge=0;
		Indegree=new int[numVertex];
        outdegree=new int[numVertex];
		Mark=new int[numVertex];
		for(int i=0;i<numVertex;i++)
		{
			Mark[i]=UNVISITED;
			Indegree[i]=0;
			outdegree[i]=0;

		}
	}
	~Graph()
	{
		delete []Mark;
		delete []Indegree;
		delete []outdegree;
	}
	virtual Edge FirstEdge(int oneVertex)=0;
	virtual Edge NextEdge(Edge preEdge)=0;

	int VerticesNum()
	{
		return numVertex;
	}
	int EdgesNum()
	{
		return numEdge;
	}
	bool IsEdge(Edge oneEdge)
	{
		if((oneEdge.weight>0)&&(oneEdge.weight<INFINITY)&&(oneEdge.to>=0))
			return true;
		else
			return false;
	}
	int FromVertex(Edge oneEdge)
	{
		return oneEdge.from;
	}
	int ToVertex(Edge oneEdge)
	{
		return oneEdge.to;
	}
	int Weight(Edge oneEdge)
	{
		return oneEdge.weight;
	}
	virtual void setEdge(int from,int to,int weight)=0;
	virtual void delEdge(int from,int to)=0;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -