1) MG->arcs[v1][v2] = MG->arcs[v2][v1] = 1; else MG->arcs[v1][v2] = 1; getchar(); } } /** * 打印邻接矩阵和顶点信息 */ void print_MG(MGraph MG) { int i, j; if(MG.type == DG){ printf(Graph type: Direct graph ); } else{ printf(Graph type: Undirect graph ); } printf(Graph vertex number: %d ,MG.vexnum); printf(Graph arc number: %d ,MG.arcnum); printf(Vertex set: ); for (i = 1; i <= MG.vexnum; i++) printf(%c , MG.vexs[i]); printf( Adjacency Matrix: ); for (i = 1; i <= MG.vexnum; i++) { j = 1; for (; j < MG.vexnum; j++) { printf(%d , MG.arcs[i][j]); } printf(%d , MG.arcs[i][j]); } } /** * 主函数 */ int main(void) { MGraph MG; create_MG(&MG); print_MG(MG); return EXIT_SUCCESS; }
执行结果:
?
?
Please input graph type UG(0) or UDG(1) :0
Please input vexmun : 4
Please input arcnum : 4
Please input 1th vex(char):a
Please input 2th vex(char):b
Please input 3th vex(char):c
Please input 4th vex(char):d
Please input 1th arc v1(char) v2(char) : a b
Please input 2th arc v1(char) v2(char) : a c
Please input 3th arc v1(char) v2(char) : a d
Please input 4th arc v1(char) v2(char) : b c
Graph type: Direct graph
Graph vertex number: 4
Graph arc number: 4
vertex set:
a b c d
Adjacency Matrix:
0 1 1 1
0 0 1 0
0 0 0 0
0 0 0 0 以上实现了图的邻接矩阵表示,其实,图还有其他的存储方式,如邻接表,十字链表等
?
?
|