C語言——無向帶權圖鄰接矩陣的創建

#include <stdio.h>
#include "Graph.h"
#define MAX_INT 32767

/*
#define vnum 20
#define MAX_INT = 32767

// 鄰接矩陣
typedef struct gp
{
    int vexs[vnum]; // 頂點信息
    int arcs[vnum][vnum]; // 鄰接矩陣
    int vexnum, arcnum; // 頂點數,邊數
}Graph;

*/

// 無向帶權圖鄰接矩陣的創建
void CreateGraph(Graph *g)
{
    int i,j,n,e,w,k;
    int info;

    // 讀入頂點數和邊數
    scanf("%d %d", &n, &e);
    g->vexnum = n;
    g->arcnum = e;

    // 讀入頂點信息
    for(i = 0;i < g->vexnum;i++)
    {
        scanf("%d", &info);
        g->vexs[i] = info;
    }

    // 初始化鄰接矩陣
    for(i = 0;i < g->vexnum;i++)
    {
        for(j = 0;j < g->vexnum;j++)
        {
            g->arcs[i][j] = MAX_INT;
        }
    }

    // 讀入邊(頂點對)和權值
    for(k = 0;k < g->arcnum;k++)
    {
        scanf("%d %d %d", &i, &j, &w);
        g->arcs[i][j] = w;
        g->arcs[j][i] = w;
    }
}

// 僞算法,未必能運行

main()
{

}
相關文章
相關標籤/搜索