c语言之邻接矩阵&最短路径&最小生成树

本文介绍了使用C语言实现图的邻接矩阵表示,深度优先遍历,以及如何找到图的最小生成树和最短路径。程序以邻接矩阵为基础结构,展示了图操作的基本功能。
摘要由CSDN通过智能技术生成

邻接矩阵&最短路径&最小生成树

在对图的操作过程中,会有非常多灵活的操作,并且一个简单的操作会需要定义非常多的基础结构。下面是一个具有若干个主要功能的程序:图的邻接矩阵表示法,图的深度优先遍历,最小生成树的生成,最小路径的生成。此程序以邻接矩阵作为基础结构。

下面是相关的程序:

#include<stdio.h> 
#define MAX 20 
#define MAXINT 1000
typedef enum{
    DG,DN,UDG,UDN
} GraphKind;

typedef struct ArcCell{   //权值 
    int distance;//用来表示两点间的权值   
    //InfoType * info; 
}ArcCell ,AdjMatrix[MAX][MAX]; 

typedef struct {        //用来储存顶点向量 
    char points[MAX];//顶点向量 
    AdjMatrix arcs;   //用来表示邻接矩阵 
    int  vexnum,arcnum;//图当前定点数和弧数
    GraphKind kind; //图的类型 
}MGraph; 

typedef struct Node{
    char ch ;
    int lowcost;
}Closedge[MAX]; //作为辅助数组,用来储存普里姆算法中分量值的变化 

int find( char points[],int num,char ch){
    int i;
    for(i=0;i<num;i++){
        if(points[i]==ch) return i;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值