鄰接矩陣 鄰接鍊錶 轉換

2021-08-11 04:54:47 字數 1417 閱讀 8547

#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碼表的順序決定。輸入 輸入有若干行 每行的第乙個字元表示起點,隨後由空格隔開的若干字元表示...