图的邻接点存储
图的邻接表存储: 图的邻接点存储
图的邻接点存储和图的邻接表存储不一样的地方在于侧重点不同,邻接点存储关键在于储存点与点之间的联系,一个点有几个邻接点从而就能得出该点有几条边,再另外开一个数组就可以储存边的权值。
#include<iostream>
using namespace std;
const int maxn = 100 + 5;
int num[maxn];//记录点有几个邻接点
int V[maxn][maxn];//记录点的值
int W[maxn][maxn];//记录边权值
int main(void)
{
int i, j;
int v;
printf("请输入点数n\n");
scanf("%d", &v);
for (i = 0; i < v; i++)
{
printf("请输入当前节点有几条边\n");
int verges;
scanf("%d", &verges);
for (j = 0; j < verges; j++)
{
int end,value;
scanf("%d%d", &end,&value);
V[i + 1][++num[i + 1]] = end;
W[i + 1][end] = value;
}
}
for (i = 0; i < v; i++)
{
for (j = 1; j <= num[i + 1]; j++)
{
printf("%d -> %d = %d\n", i + 1, V[i + 1][j], W[i + 1][V[i + 1][j]]);
}
printf("\n");
}
return 0;
}