c语言自动生成邻接矩阵,C语言实现邻接矩阵创建无向图&图的深度优先遍历

这篇博客介绍了如何使用C语言通过邻接矩阵实现无向图的创建和深度优先遍历。代码示例展示了初始化邻接矩阵、查找顶点位置、创建无向图以及深度优先遍历的函数实现。用户可以选择输入顶点个数、边数以及边的信息,程序会根据输入自动生成邻接矩阵,并进行深度优先遍历的打印。

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

Code

/* '邻接矩阵' 实现无向图的创建、深度优先遍历*/

#include

#include

#define MaxVex 100 //最多顶点个数

#define INFINITY 32768 //表示极大值,即 ∞

#define TRUE 1

#define FALSE 0

#define OK 1

#define ERROR 0

typedef char VertexType; //假设顶点数据类型为字符类型

typedef int EdgeType; //对于无权图,用1或0表示是否相邻,对带权图,则为权值类型

typedef struct

{

VertexType vertex[MaxVex]; //顶点数组

EdgeType arcs[MaxVex][MaxVex]; //邻接矩阵

int vexnum,arcnum; //图中的顶点数和边数

}Graph;

int visited[MaxVex]; //访问标志数组

/**********************各个子函数的定义*********************/

void init(Graph *G); //初始化邻接矩阵

int LocateVertex(Graph *G,VertexType v);//求顶点位置函数

int createUDG(Graph *G); //创建一个无向图

void DepthFirstSearch(Graph G, int i); //图的深度优先遍历

void TraverseGraph(Graph G);

/**************************主函数*************************/

int main()

{

Graph G;

int choice;

while(true)

{

printf("*****************Please enter your choice*****************\n\n");

printf(" choice 1:Initialization\n");

printf(" choice 2:Create Graph\n");

printf(" choice 3:Depth First Search\n");

printf(" choice 0:exit\n\n&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值