数据结构第12周作业(图、AOV网与拓扑排序)

数据结构第12周作业(图、AOV网与拓扑排序)_第1张图片

1.

邻接矩阵:
( 0 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 1 0 1 1 0 0 0 0 ) \left(\begin{array}{lllll} 0 & 1 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 1& 0 & 1 & 0 \\ 0& 0 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 & 0 \end{array}\right) 0000110100100100010001010
邻接表

2.
void Visit(A, n, v){   
    for (i = 1; i<=n; i++) Visited[i] = 0;
    f = 0;     r = 1;  
    Q[r] = v;  Visited[v] = 1;
    while (f<r){  
        u = Q[++f];   printf(u);      // 访问顶点u //
        for (j=1; j<=n;  j++)
            if (A[u][ j]==1 &&  Visited[j]==0)
            { Visited[j] = 1;   Q[++r] = j;  }  // 入队 //
    };    // 遍历结束 //
};

数据结构第12周作业(图、AOV网与拓扑排序)_第2张图片

3.
void Total(Adjlist, n, od, id);
{    for (i = 1; i<=n; i++ ) 
        { od[i] = 0; id[i] = 0;  }  //置0//
     for (i = 1; i<=n; i++ ) 
  {    p = Adjlist[i];
       while (p!=0)
       {   od[i] = od[i] + 1;
          id[p->Vertex] = id[p->Vertex] + 1;
      }  // End of while //
   }  // End of for //
}
4.

强连通分量是有三个,{1}、{2,3,4,5}和{6}

5.
void Topo_Order(int Count[n], Vertext, Adjlist, n){
    Top = 0;    // Count[1..n]表示顶点的度  //
    for(j = 1, j<=n, j++)
        if(Count[j] == 0){ 
            Count[j] = Top;  
            Top = j;  
        }
    while(top>0){
        j = Top;             
        Top = Count[Top];
        printf(Vertex[j]);    
        p = Adjlist[j];
        while (p !=0){ 
            k = p->Vertex;     
            Count[k] = Count[k]1;
            if (Count[k] == 0){ 
                Count[k] = Top;        
                Top = k;  
            }
            p  = p->Link;
        }
    }
}

你可能感兴趣的:(算法与数据结构,php,欧拉回路,tcl)