㈠ 數據結構 用C語言編程:求鄰接矩陣存儲結構的有向圖G中各結點的出度
對每個結點所對應的那一列,中的所有1加起來,就是出度。(鄰接矩陣中存的是0, 1)
入度的計算也是類似的。
V : 結點集合。v_i (i = 0, n-1), n = |V|.
E : 邊集合。表示為n*n的鄰接矩陣。
E[i, j] = { if v_i -> v_j 存在有向邊,1。else 0 }
求結點v_i的出度(偽碼):
for (i = 0; i < n-1; i++) {
degree_sum = 0;
for (j = 0; j < n-1; j++) {
if (E[i][j] == 1)
degree_sum++;
}
}
㈡ 數據結構利用鄰接矩陣存儲結構怎樣求圖中兩個頂點之間的所有路徑
typedef struct {
ElemType vexs[MVN]; //頂點向量
AdjMatrix arcs; //鄰接矩陣
int vexnum, arcnum; //圖的當前頂點數和弧數
}MGraph;
int visited[100]; //指示頂點是否在當前路徑上
bool exist(MGraph &G,int i,int j)
{
int k;
if(i == j)
{
return false;
}
else
{
if(G.arcs[i][j] == 1)
{
return true;
}
visited[i] = 1;
for(k = 0;k < G.vexnum;k++)
{
if(!visited[k] && exist(G,k,j))
{
return true;
}
}
}
}
int main()
{
system("pause");
return 0;
}
可以參考一下