(圖論的中一般都會牽涉到建邊的問題,下面的這三種建邊的方法視情況選取)
int
main()
}}
struct node
;vectorvt[
300]
;//vt[i]中存的是以i為起點的邊,vt[i][0].e、vt[i][1].e、vt[i][2].e、、、分別表示每條邊的終點
intmain()
);//以sx為起點的邊
vt[ex]
.push_back
(node);
}}}
const
int manx=
1e4+10;
int dis[
300]
,vs[
300]
,head[
300]
;//dis表示到起點的最短距離
//vs中,1表示已入隊,0表示未入隊
//head最終存的是以i為終點的最後一條邊head[i]
int n,m,cou;
//cou記錄每條邊的編號
struct node
edge[manx<<2]
;void
add(
int s,
int e,
int len)
; head[s]
=cou++
;//這裡可以發現,head[s]中的資料就是以s為起點的「最後一條邊」
}vectorvt[
300]
;int
main()
}}
遍歷相同起點的邊
for
(int i=head[sx]
;i!=-1
;i=edge[i]
.bf)
//i表示邊的編號
nx=edge[i]
.e,nlen=edge[i]
.len;
//起點:ex,終點:nx,邊權:nlen
鄰接矩陣學習
鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...
鄰接矩陣學習
鄰接矩陣 是表示頂點之間相鄰關係的矩陣。因此,用乙個一維陣列存放圖中所有頂點資料 用乙個二維陣列存放頂點間的關係 邊或弧 的資料,這個二維陣列稱為鄰接矩陣。鄰接矩陣又分為有向圖鄰接矩陣和無向圖鄰接矩陣。設g v,e 是乙個圖,其中v g的鄰接矩陣是乙個具有下列性質的n階方陣 對無向圖而言,鄰接矩陣一...
鄰接矩陣(Adjacency Matrix)
鄰接矩陣的特點 1 對於有n個頂點的無向圖最多需要n n 1 2個儲存空間,有向圖最多需要n 2個儲存空間 2 對於無向圖,鄰接矩陣第i行元素之和是圖第i個頂點的度 3 鄰接矩陣適用於稠密圖 4 方便搜尋兩頂點是否有邊或弧 鄰接矩陣的屬性 public static final int inf 32...