C语言数据结构创建有向图的邻接矩阵-顺序存储

本文介绍如何使用C语言顺序存储方法创建有向图的邻接矩阵。通过定义二维数组存储边的权值,一维数组表示点,详细讲解了创建邻接矩阵并输出的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
*顺序储存有向图邻接矩阵
*定义一个边的权值的二维数组
*定义一个点的一维数组
*创建一个邻接矩阵
*输出这个邻接矩阵
*/

#include<stdio.h>
 #include<string.h>
 #include<stdlib.h>
 #define MAXVERTEX 100//顶点数
 #define ERROR 0
 #define OK 1
 typedef   char * VertexType;//顶点数据类型
 typedef int ArcType;//权值数据类型
 typedef int Statu;//返回值的数据类型
 typedef enum{

   DG,//有向图
   UDG,//无向图
   DN,//有向网
   UDN//无向网
 }GraphKind;//图的枚举类型
 typedef struct
 {
     VertexType vertex[MAXVERTEX];//点的一维数组
     ArcType arcs[MAXVERTEX][MAXVERTEX];//权值的二维数组
       int vertexcount;//点数
       int arccount;//边数
       GraphKind kind;//图的类型
}Mtrix_Graph;//图的结构体类型
Statu create_matrixgraph(Mtrix_Graph*G);//创建邻接矩阵
 void test();//测试函数
 int locate_graph(Mtrix_Graph*G,VertexType vex);//返回名称在数组中的下标(定位函数)
 void main()
 {
     test();//测试函数

 }
 Statu create_matrixgraph(Mtrix_Graph*G)//创建邻接矩阵
 {
     G->kind=UDG;//表明是无向图  (UDG代表有向图)
     int i;
     int j;
    int x,y;
     printf("输入图的顶点数:");
     scanf("%d",&G-&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值