1. 程式人生 > >真題2017 圖的鄰接錶轉換為鄰接矩陣的演算法

真題2017 圖的鄰接錶轉換為鄰接矩陣的演算法

題目:寫出從圖的鄰接表表示轉換成鄰接矩陣表示的演算法 演算法思想:設圖的頂點分別設在V[n]陣列中。首先初始化鄰接矩陣。遍歷鄰接表,在依次遍歷頂點V[i]的邊連結串列,修改鄰接矩陣的第i行的元素值。若連結串列邊結點的值為j,則置arcs[i][j]=1。遍歷完整個鄰接表時,整個轉換過程結束。此演算法對無向圖,有向圖均適用。 演算法描述如下:

在這裡插入程式碼片
Void Convert( ALGraph  &G, int  arcs[M][N]){
	//此演算法是將鄰接表方式表示的圖G轉換為鄰接矩陣arcs
	For(int i=0; i<n; i++){            //依次遍歷各頂點表結點為頭的邊連結串列
		P=(G->v[i].firstarc);      //取出頂點i的第一條出邊
		While(p!=null){            //遍歷邊連結串列
			Arcs[i][p->data]=1;
			P=p->nextarc;         //取下一條出邊
		}
	}
}