图论 - 图1

邻接矩阵建图

邻接矩阵

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
  1. int edge,int dot,int weight;
  2. //建图
  3. public void CreatGraph(int edge,int dot,int weight)
  4. {
  5. for(int i;i < edge;i++){
  6. int col,row;
  7. /*//若有权值
  8. var matrix[col][row] = weight;
  9. var matrix[row][col] = weight;*/
  10. var matrix[col][row] = 1;
  11. var matrix[row][col] = 1;//如果是有向图则不需要此行.
  12. }
  13. }
  14. //遍历图
  15. public void TraversalGraph(int dot,var[][] GraphMatrix,int target)
  16. {
  17. for(int i = 0; i <= dot; i++){
  18. if(Graphmatrix[target][i] == 1)
  19. //遍历target的所有边
  20. }
  21. }

邻接表建图

邻接表
图论 - 图2

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里面。