邻接矩阵建图
邻接矩阵
| 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|
| 1 | 0 | 1 | 0 | 0 | 0 |
| 2 | 1 | 0 | 1 | 0 | 1 |
| 3 | 0 | 1 | 0 | 1 | 0 |
| 4 | 0 | 0 | 1 | 0 | 1 |
| 5 | 0 | 1 | 0 | 1 | 0 |
int edge,int dot,int weight;//建图public void CreatGraph(int edge,int dot,int weight){for(int i;i < edge;i++){int col,row;/*//若有权值var matrix[col][row] = weight;var matrix[row][col] = weight;*/var matrix[col][row] = 1;var matrix[row][col] = 1;//如果是有向图则不需要此行.}}//遍历图public void TraversalGraph(int dot,var[][] GraphMatrix,int target){for(int i = 0; i <= dot; i++){if(Graphmatrix[target][i] == 1)//遍历target的所有边}}
邻接表建图
邻接表
Vector<int> adj;
int edge,dot,weight;
//创建
void CreatGraph(int edge){
int col,row;
for(int i = 0; i< edge; i++){
col.Read();
row.Read();
adj[col].add(row);
adj[row].add(col);//有向图不需要
}
}
//遍历
void TraversalGraph(Vector<> adj,int target){
for(int i = 0; i < adj[target].Length; i++){
int res = adj[target][i];
//遍历target的所有边
}
}
///若有权,将edge和weight封装到一个class里面。
