graph.h
来自「—图数据类型的实现——问题描述:图是一种较线性表和树更为复杂的数据结构。在图形结」· C头文件 代码 · 共 68 行
H
68 行
#ifndef GRAPH_H#define GRAPH_H
#include <iostream.h>#define DefaultSize 20
#define NULL 0
typedef int NameType;
typedef int DistType;//template<class NameType,class DistType>class Graph;//template<class DistType>class Edge{public: friend class Graph; Edge(){} Edge(int D,DistType C):dest(D),cost(C),link(NULL) {} int operator !=(Edge &E) const { return E.dest!=dest; }private: int dest; DistType cost; Edge *link;};//template<class NameType,class DistType>class Vertex{ friend class Graph; friend class Edge; NameType data; Edge *adj;};//template<class NameType,class DistType>class Graph{private: Vertex *nodeTable; int numVertexs;
int maxNumVertexs;
int *status; int numEdges; int GetVertexPos(const NameType &ver);public: Graph(int sz); ~Graph();
friend ostream& operator<<(ostream &out,Graph &ref); int GraphEmpty()const {return numVertexs==0;} int GraphFull()const {return numVertexs==maxNumVertexs;} int NumberOfVertexs()const {return numVertexs;} int NumberOfEdges() const {return numEdges;} NameType GetValue(int i) { return i>=0 && i<numVertexs ? nodeTable[i].data : NULL; } void InsertVertex(const NameType &vertex); void InsertEdge(int v1,int v2,DistType weight); void RemoveEdge(int v1,int v2); void RemoveVertex(int v); DistType GetWeight(int v1,int v2); int GetFirstNeighbor(int v); int GetNextNeighbor(int v1,int v2);
void DFS(int start);
};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?