数据结构:图的存储结构之邻接矩阵(摘自网易云课堂)
来源:互联网 发布:js定义有返回值的函数 编辑:程序博客网 时间:2024/05/21 18:17
/* 图的邻接矩阵表示法(C语言实现) */
#define MaxVertexNum 100 /* 最大顶点数设为100 */
#define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/
typedef char VertexType; /* 顶点类型设为字符型 */
typedef int EdgeType; /* 边的权值设为整型 */
enum GraphType { DG, UG, DN, UN };
/* 有向图,无向图,有向网图,无向网图*/
typedef struct {
VertexType Vertices[ MaxVertexNum ]; /* 顶点表 */
EdgeType Edges[ MaxVertexNum ][ MaxVertexNum ];
/* 邻接矩阵,即边表 */
int n, e; /* 顶点数n和边数e */
enum GraphType GType; /* 图的类型分4种:UG、DG、UN、DN */
} MGraph; /* MGragh是以邻接矩阵存储的图类型 */
void CreateMGraph( MGraph *G )
{
int i, j, k, w;
G-> GType = UN; /* Undirected Network 无向网图 */
printf( "请输入顶点数和边数(输入格式为:顶点数, 边数):\n" );
scanf( "%d, %d",&(G->n), &(G->e) ); /* 输入顶点数和边数 */
printf("请输入顶点信息(输入格式为:顶点号<CR>):\n");
for ( i = 0; i < G->n; i++ )
scanf( "%c",&(G-> Vertices[i]) ); /* 输入顶点信息,建立顶点表 */
for ( i = 0; i < G->n; i++ )
for ( j = 0; j < G->n; j++ )
G->Edges[i][j] = INFINITY; /* 初始化邻接矩阵 */
printf( "请输入每条边对应的两个顶点的序号和权值,输入格式为:i, j, w:\n" );
for ( k = 0; k < G->e; k++ ) {
scanf("%d,%d,%d ",&i, &j, &w); /* 输入e条边上的权,建立邻接矩阵 */
G->Edges[i][j] = w;
G->Edges[j][i] = w; /* 因为无向网图的邻接矩阵是对称的 */
}
}
#define MaxVertexNum 100 /* 最大顶点数设为100 */
#define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/
typedef char VertexType; /* 顶点类型设为字符型 */
typedef int EdgeType; /* 边的权值设为整型 */
enum GraphType { DG, UG, DN, UN };
/* 有向图,无向图,有向网图,无向网图*/
typedef struct {
VertexType Vertices[ MaxVertexNum ]; /* 顶点表 */
EdgeType Edges[ MaxVertexNum ][ MaxVertexNum ];
/* 邻接矩阵,即边表 */
int n, e; /* 顶点数n和边数e */
enum GraphType GType; /* 图的类型分4种:UG、DG、UN、DN */
} MGraph; /* MGragh是以邻接矩阵存储的图类型 */
void CreateMGraph( MGraph *G )
{
int i, j, k, w;
G-> GType = UN; /* Undirected Network 无向网图 */
printf( "请输入顶点数和边数(输入格式为:顶点数, 边数):\n" );
scanf( "%d, %d",&(G->n), &(G->e) ); /* 输入顶点数和边数 */
printf("请输入顶点信息(输入格式为:顶点号<CR>):\n");
for ( i = 0; i < G->n; i++ )
scanf( "%c",&(G-> Vertices[i]) ); /* 输入顶点信息,建立顶点表 */
for ( i = 0; i < G->n; i++ )
for ( j = 0; j < G->n; j++ )
G->Edges[i][j] = INFINITY; /* 初始化邻接矩阵 */
printf( "请输入每条边对应的两个顶点的序号和权值,输入格式为:i, j, w:\n" );
for ( k = 0; k < G->e; k++ ) {
scanf("%d,%d,%d ",&i, &j, &w); /* 输入e条边上的权,建立邻接矩阵 */
G->Edges[i][j] = w;
G->Edges[j][i] = w; /* 因为无向网图的邻接矩阵是对称的 */
}
}
0 0
- 数据结构:图的存储结构之邻接矩阵(摘自网易云课堂)
- 数据结构:图的存储结构之邻接矩阵
- 数据结构:图的存储结构之邻接矩阵
- 数据结构:图的存储结构之邻接矩阵
- 大话数据结构十八:图的存储结构之邻接矩阵
- 数据结构之图的邻接矩阵存储方法
- 数据结构—图的存储结构(邻接矩阵)
- 【数据结构笔记】3:无向图的邻接矩阵存储结构
- 【数据结构】图的存储--邻接矩阵
- 网易云课堂-数据结构
- 图的邻接矩阵存储结构
- 图的存储结构 邻接矩阵
- 图的存储结构 --- 邻接矩阵
- 图的邻接矩阵存储结构
- 图的存储结构-邻接矩阵
- 图的存储结构-邻接矩阵
- 38. 数据结构笔记之三十八图的邻接矩阵存储实现
- 网易云课堂-数据结构-第二讲-线性结构
- Fedora 22 设置顶部 Top Bar 透明
- HD2021 发工资咯
- leetcode之路002 Add Two Numbers
- iOS前期OC训练OC_06字典
- 二分 hdu2141 Can you find it?
- 数据结构:图的存储结构之邻接矩阵(摘自网易云课堂)
- 【POJ】【2019】
- keil c51的内部RAM(idata)动态内存管理程序
- 动态规划 钢条切割问题 两种方法 自底而上 自上而下的方法
- 编写可变参数c函数
- 真是他们知道的哪个胆怯怯懦的龙景吗
- Should I normalize/standardize/rescale the data
- Codeforces Round #313 (Div. 2)D
- 15/7/23/文件输入输出/DOM/SAX