数据结构之矩阵法实现图

原始图











矩阵


以下是代码


#include "stdio.h"
#include "stdlib.h"
#define row 5
#define column 5
#define vexs_num 5
/*
实现功能:用矩阵的方法存储图
编译环境:win7 64b,vc6.0
日期 :2015/8/7
作者 :wtt561111
*/
typedef char VexType;
typedef int AdjType;
struct GraphMatrix{
int n;
VexType *vexs;//用什么符号表示点(1,2,3或者a,b,c)
AdjType **arcs;//二维矩阵。如果只是判断是否有边,可是用0和1.但是如果有权,需要用浮点数表示
};
typedef struct GraphMatrix *PGraphMatrix;
/*****************主函数***********************************************/
int main(){
//创建一个图
PGraphMatrix gm=(PGraphMatrix)malloc(sizeof(struct GraphMatrix));
if(gm==NULL){
printf("out of space\n");
return -1;
}
//创建一维数组存储点的信息
char *vexs_info=(char *)malloc(sizeof(char)*vexs_num);


//初始化点的信息
vexs_info="01234";


//将点的信息复制到图
gm->vexs=vexs_info;


//创建二维矩阵存储边的信息
int **edge_info=(int**)malloc(sizeof(int *)*row);
for(int i=0;i<row;i++){
edge_info[i]=(int *)malloc(sizeof(int)*column);
}


//初始化边的信息
edge_info[0][0]=0;edge_info[0][1]=1;edge_info[0][2]=0;edge_info[0][3]=0;edge_info[0][4]=0;
edge_info[1][0]=1;edge_info[1][1]=0;edge_info[1][2]=0;edge_info[1][3]=0;edge_info[1][4]=1;
edge_info[2][0]=0;edge_info[2][1]=1;edge_info[2][2]=0;edge_info[2][3]=1;edge_info[2][4]=0;
edge_info[3][0]=1;edge_info[3][1]=0;edge_info[3][2]=0;edge_info[3][3]=0;edge_info[3][4]=0;
edge_info[4][0]=0;edge_info[4][1]=0;edge_info[4][2]=0;edge_info[4][3]=1;edge_info[4][4]=0;


//将边的信息复制到图
gm->arcs=edge_info;


printf("第一个点: %c\n",gm->vexs[0]);
printf("第一个边: %d\n",gm->arcs[0][0]);
return 0;


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值