#include <stdio.h>
#include <malloc.h>
#define MAX_VERTEX_NUM 20
#define INFINITY 2000000000
//图的邻接矩阵存储结构
struct graph
{
char vex[MAX_VERTEX_NUM]; //顶点向量
int adjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //邻接矩阵
int vexNum; //顶点数
int arcNum; //边(弧)数
};
//孩子兄弟链表存储结构
struct CSNode
{
char data;
struct CSNode *firstchild;
struct CSNode *nextsibling;
};
//计算最小生成树的辅助数组结构
struct closedge
{
char adjvex; //邻结点
int lowcost; //最小权值
};
//找出某顶点位置
int LocateVex(struct graph g, char v)
{
int i = 0; //循环变量
for(i = 0; i < g.vexNum; i++)
{
if(g.vex[i] == v)
{
return i;
}//if
}//for
printf("ERROR!");
return -1;
}//LocateVex
//创建无向网
struct graph *CreatUDN()
{
struct graph *g = NULL; //存储无向网
int i = 0, j = 0, k = 0;//循环变量
char v1, v2; //接收某边的两个顶点
int w = 0; //接收某边的权值
g = (struct graph *)malloc(sizeof(struct graph));
printf("please input the num of vertex and arc:\n");
scanf("%d %d", &(g->vexNum), &(g->arcNum));
getchar();
printf("please input %d vertexs without space:\n", g->vexNum);
for(i = 0; i < g->vexNum; i++)
{//构造顶点向量
g->vex[i] = getchar();
}//for