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