图的邻接矩阵c语言表示(无向网)---《数据结构》算法7.2
来源:互联网 发布:程序员被前妻勒索照片 编辑:程序博客网 时间:2024/04/30 15:25
邻接矩阵是图的一种表示法,构造具有n个顶点和e条边的无向网G的时间复杂度为(n^2+e*n),代码如下:
#include<stdio.h>#define infinity 2000000000#define MAX_VERTEX_NUM 100typedef enum{DG,DN,UDG,UDN} GraphKind;typedef struct {int vexs[MAX_VERTEX_NUM];int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];int vexnum,arcnum;GraphKind kind;}MGraph;int LocateVex(MGraph G,int v){for(int i=0;i<G.vexnum;i++){if(G.vexs[i]==v)return i;}}void CreateUDN(MGraph &G){int i,j,k;G.kind=UDN;//图的类型为无向网 printf("输入顶点个数和弧的个数:\n");scanf("%d%d",&G.vexnum,&G.arcnum);//输入顶点个数,弧额条数,以及是否有关于弧的相关信息 printf("输入各个顶点的名称(数字):\n"); for(i=0;i<G.vexnum;i++)scanf("%d",&G.vexs[i]);//输入各个顶点,这里顶点的数据类型默认为int类型for(i=0;i<G.vexnum;i++) for(j=0;j<G.vexnum;j++) G.arcs[i][j]=0;//初始化图printf("输入各条弧的两个顶点和权值:\n"); for(k=0;k<G.arcnum;k++){int v1,v2,weight;scanf("%d %d %d",&v1,&v2,&weight);//输入弧的两个顶点 i=LocateVex(G,v1);j=LocateVex(G,v2);//寻找两个顶点在矩阵中的位置 G.arcs[i][j]=weight;G.arcs[j][i]=G.arcs[i][j];//置<v1,v2>的对称弧<v2,v1> } }void Print(MGraph G){for(int i=0;i<G.vexnum;i++){for(int j=0;j<G.vexnum;j++)printf("%d ",G.arcs[i][j]);printf("\n");}}int main(){MGraph G;CreateUDN(G);Print(G);return 0;}
0 0
- 图的邻接矩阵c语言表示(无向网)---《数据结构》算法7.2
- 【数据结构类】无向图的邻接矩阵表示法
- 数据结构C语言--邻接矩阵表示有向网
- 无向图的邻接矩阵创建表示
- (编程训练)再回首,数据结构——无向图的邻接矩阵表示、DFS、BFS
- 数据结构之---C语言实现图的数组(邻接矩阵)存储表示
- 无向图 c语言 (数据结构)
- 判断无向图图的连通性,邻接矩阵表示
- 无向图的邻接矩阵表示和遍历
- 无向图的表示:邻接矩阵和邻接表
- 无向带权图的邻接矩阵表示法
- 数据结构(C实现)------- 图的邻接矩阵表示
- 数据结构(C实现)------- 图的邻接矩阵表示
- 邻接矩阵无向图(一)之 C语言详解
- 数据结构:无向图的邻接多重表存储表示 (c实现)
- 【数据结构笔记】3:无向图的邻接矩阵存储结构
- 《数据结构》实验六-----邻接矩阵 无向图
- 数据结构,图的邻接矩阵表示
- 科技与生活 - 自然辩证法
- Java线程(七):Callable和Future
- nyoj 38 布线问题 克鲁斯卡尔
- 对onPause调用时机的误解
- loadView重写
- 图的邻接矩阵c语言表示(无向网)---《数据结构》算法7.2
- [坑]微信支付首次支付成功,第二次调用失败
- 6.Tachyon文件存储以及读写过程
- MyCat - 使用篇(5)
- 基于Struts2的验证码程序
- SQLServer存储过程参数值为空时不作为查询条件
- test
- POJ 1365 Prime Land(接收数据)
- WindowManager service