#define INF 10000  // 表示无穷大（无直接连接）
int graph[5][5] = {
    {0, 10, 20, INF, INF},    // A到各点的距离
    {10, 0, 5, 15, INF},      // B到各点的距离
    {20, 5, 0, INF, 30},      // C到各点的距离
    {INF, 15, INF, 0, 5},     // D到各点的距离
    {INF, INF, 30, 5, 0}      // E到各点的距离
};


#define MAX_VERTEX 5
typedef struct EdgeNode {
    int adjVertex;  // 邻接顶点的索引
    int weight;     // 边的权重
    struct EdgeNode* next;  // 指向下一个邻接顶点的指针
} EdgeNode;

typedef struct VertexNode {
    char vertex;  // 顶点名称（如'A'、'B'等）
    EdgeNode* firstEdge;  // 指向第一条邻接边
} VertexNode;

typedef struct Graph {
    VertexNode vertices[MAX_VERTEX];
    int vertexCount;
} Graph;
