#include
#include
//#include "graph.h"
#include
using
namespace
std;
typedef
int infotype;
#define maxv 100 //最大頂點個數
#define inf 32767 //inf表示∞
//以下定義鄰接矩陣型別
typedef
struct vertextype; //頂點型別
typedef
struct
//圖的定義
mgraph; //圖的鄰接矩陣型別
//以下定義鄰接表型別
typedef
struct anode //邊的節點結構型別
arcnode;
typedef
int vertex;
typedef
struct vnode //鄰接表頭節點的型別
vnode;
typedef vnode adjlist[maxv]; //adjlist是鄰接表型別
typedef
struct
algraph; //圖的鄰接表型別
void mattolist(mgraph g,algraph *&g)
//將鄰接矩陣g轉換成鄰接表g
g->n=g.n;g->e=g.e;
}void listtomat(algraph *g,mgraph &g)
}g.n=g->n;g.e=g->e;
}void dispmat(mgraph g)
}void dispadj(algraph *g)
//輸出鄰接表g
printf("\n");
}}//以下主函式用作除錯
int main()
}g.n=n;g.e=m;
for (i=0;ifor (j=0;j//printf("\n");
///printf(" 有向圖g的鄰接矩陣:\n");
//dispmat(g);
g=(algraph *)malloc(sizeof(algraph));
//printf(" 圖g的鄰接矩陣轉換成鄰接表:\n");
mattolist(g,g);
dispadj(g);
/*printf(" 圖g的鄰接表轉換成鄰接鄰陣:\n");
for (i=0;i//system("pause");
}
鄰接表轉鄰接矩陣
假設無向圖g採用鄰接矩陣儲存,編寫乙個演算法輸出鄰接表。description 第一行為乙個 整數n,表示頂點的個數 頂點 編號為0到n 1 接下來是為乙個n n大小的 整數矩陣,表示圖的鄰接關係。數字為0表示不鄰接,1表示鄰接。input 輸出圖g的鄰接表。第一行表示頂點0可直接到達的 頂點編號。...
鄰接矩陣與鄰接表
鄰接矩陣表示圖 public class graph private int vertexnum private int edgenum private int g 鄰接矩陣 public graph int vertexnum public void insertedge edge edge pu...
c c 從鄰接表轉換到鄰接矩陣
題目 鄰接表和鄰接矩陣都是圖的表示方法,它們相互之間也可以通過一定的方式進行轉換。本題將給出乙個有向圖的鄰接表,請將此鄰接表轉換成對應的鄰接矩陣。說明 每個點由除空格外的乙個可顯示字元表示,點的順序由ascii碼表的順序決定。輸入 輸入有若干行 每行的第乙個字元表示起點,隨後由空格隔開的若干字元表示...