//无向带权图边集数组存储
#include<cstdio>
#include<iostream>
#include<algorithm>
const int MAX = 100; //最大边数
using namespace std;
typedef struct{
int head,tail; //头节点,尾节点
int data; //权值,边信息
}Edge;
Edge EdgeArray[MAX];//边组数组 用于存放边
int createEdge() //创建无向带权图的边数组存储
{
int n,i;
printf("请输入带权图边数:");
scanf("%d",&n);
for(i = 1;i <= n;i++)
{
printf("请输入这条边的头,尾结点 以及最后的权值:\n");
scanf("%d %d %d",&EdgeArray[i].head,&EdgeArray[i].tail,&EdgeArray[i].data);
}
return n;
}
int main()
{
int n,i;
n = createEdge();
printf("有权无向图的边集数组存储:\n");
for(i = 1;i <= n ;i++)
{
printf("%d---(%d)---%d",EdgeArray[i].head,EdgeArray[i].data,EdgeArray[i].tail);
printf("\n");
}
return 0;
}
下面是测试的结果:
请输入带权图边数:2
请输入这条边的头,尾结点 以及最后的权值:
1 2 3
请输入这条边的头,尾结点 以及最后的权值:
1 3
2
有权无向图的边集数组存储:
1---(3)---2
1---(2)---3