栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构-使用邻接矩阵方法完成对图的存储,并输出该图

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构-使用邻接矩阵方法完成对图的存储,并输出该图

 主函数
#include "./praph.h"

int main(int argc, const char *argv[])
{
	Graph *G = create();
	if (NULL == G)
	{
		return -1;
	}

	add_rel(G,'A','B');
	add_rel(G,'A','C');
	add_rel(G,'A','D');
	add_rel(G,'C','B');

	show(G);
	return 0;
}
头文件
#ifndef __PRAPH_H__
#define __PRAPH_H__

#define N 4

#include 
#include 

typedef char datatype;
typedef struct
{
	datatype data[N];    //存放顶点元素
	int rel[N][N]; 		//存放关系的数组
}Graph;

//创建
Graph *create();

//获取顶点下标函数
int get_pos(Graph *G,datatype v);

//添加关系
int add_rel(Graph *G,datatype v1,datatype v2);

//show函数
void show(Graph *G);


#endif
被调函数

#include "./praph.h"


//创建
Graph *create()
{
	Graph *G = (Graph*)malloc(sizeof(Graph));
	if (NULL == G)
	{
		printf("申请失败");
		return NULL;
	}

	//初始化
	for (int i=0;idata[i] = 'A'+i;
	}
	for (int i=0;irel[i][j] = 0;
		}
	}
	printf("创建成功n");
	return G;
}

//获取顶点下标函数
int get__pos(Graph *G,datatype v)
{
	for (int i=0;idata[i] == v)
		{
			return i;
		}
	}
	return -1;
}


//添加关系
int add_rel(Graph *G,datatype v1,datatype v2)
{
	if (G == NULL)
	{
		printf("图错误n");
		return -1;
	}

	int pos1 = get__pos(G,v1);
	int pos2 = get__pos(G,v2);
	if (pos1 == -1 || pos2 == -1)
	{
		printf("所给节点不合法n");
		return -1;
	}

	G->rel[pos1][pos2] = G->rel[pos2][pos1] = 1;
	printf("%c和%c关系建立成功n",v1,v2);
	return 0;
}

//show函数
void show(Graph *G)
{
	printf("当前图如下n");
	for (int i=0;idata[i]);
	}
	printf("n");
	//输出
	for (int i=0;idata[i]);
		for (int j=0;jrel[i][j]);
		}
		printf("n");
	}
}
测试
创建成功
A和B关系建立成功
A和C关系建立成功
A和D关系建立成功
C和B关系建立成功
当前图如下
	A	B	C	D
A	0	1	1	1	
B	1	0	1	0	
C	1	1	0	0	
D	1	0	0	0	

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号