首页 > 其他 > 详细

图的存储

时间:2017-01-25 17:39:58      阅读:136      评论:0      收藏:0      [点我收藏+]

以下存取方式均为带权图

一、邻接矩阵

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int n,m,a[1000][1000],x,y,c;
 5 int main()
 6 {
 7     scanf("%d%d",&n,&m);
 8     memset(a,0,sizeof(a)); //默认没有边
 9     for (int i=1;i<=m;i++)
10     {
11         scanf("%d%d%d",&x,&y,&c);
12         a[x][y]=c;
13      } 
14     for (int i=1;i<=n;i++)
15     {
16         for (int j=1;j<=n;j++) printf("%d ",a[i][j]);
17         printf("\n"); 
18     }
19     return 0;
20  } 

 

二、邻接链表

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 const int maxn=1000;
 5 const int maxm=10000;
 6 struct Edge
 7 {
 8     int x,y,next,c;
 9 }edge[maxm*2];
10 int sumedge,head[maxn],x,y,c,n,m;
11 int insedge(int x,int y,int c)
12 {
13     sumedge++;
14     edge[sumedge].x=x;
15     edge[sumedge].y=y;
16     edge[sumedge].next=head[x];
17     edge[sumedge].c=c;
18     head[x]=sumedge;
19     return 0;
20 }
21 int main()
22 {
23     scanf("%d%d",&n,&m);
24     sumedge=0;
25     memset(head,0,sizeof(head));
26     for (int i=1;i<=m;i++)
27     {
28         scanf("%d%d%d",&x,&y,&c);
29         insedge(x,y,c);
30         insedge(y,x,c); 
31      } 
32     return 0;
33  } 

 

图的存储

原文:http://www.cnblogs.com/9pounds15pence/p/6349666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!