【自己动手写数据结构】 -- 有向带权图的邻接矩阵存储的简单实现

/*
 * 带权图的邻接矩阵存储实现

 *
 * 当G = <V,E>是一个带权图时,G的邻接矩阵中若顶点Vi到顶点Vj
 * 之间存在边,则将[i,j]赋值为此边的权值;若不存在边,则将[i,j]
 * 赋值为无穷大;而[i,i]的值为0
 */
#include<stdio.h>
//定义10000为无穷大
#define MAXSIZE 10000
//定义最大的顶点数为30
#define vertexNum 30
//定义顶点的数据类型
typedef char vertexType;

typedef struct node {
	vertexType vertex[vertexNum];
	int deges[vertexNum][vertexNum];
	//图中的顶点数和边数
	int verNum;
	int edgeNum;
}matrix;

//创建该图的邻接矩阵存储结构
void createMatrix(matrix *gra) {
	//先输入图的顶点数和边数
	printf("输入图的顶点数和边数:\n");
	scanf("%d%d", &(gra->verNum), &(gra->edgeNum));
	//抵消上一步输入时的换行动作
	getchar();
	printf("图中各顶点为:\n");
	//依次输入各个顶点
	for(int i = 0; i < gra->verNum; i++) {
		scanf("%c", &gra->vertex[i]);
	}
	for(int i = 0; i < gra->verNum; i++) {
		for(int j = 0; j < gra->verNum; j++) {
			//一个点到自身的边值为0,其他点之间的边值初始化为无穷大
			if(
  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值