离散结构求有向图的通路和回路C语言实现
代码如下:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define S 20
void Get_V(char V[]);
void Get_E(char E[]);
int sort_V(char V[], char Q[], int l);
int sort_E(char E[], char P[], int h);
int matrix(int M[S][S][S], char V[], char E[], int l, int h);
void matrix_multiplication(int M[S][S][S], int d);
void main()
{
char V[40], E[150];
int M[S][S][S] = { 0 };
int l, h, d;
Get_V(V);
l = strlen(V);
Get_E(E);
h = strlen(E);
d = matrix(M, V, E, l, h);
matrix_multiplication(M, d);
}
void Get_V(char V[])
{
printf("请输入一个有向图的点集(输入格式如:{a,b}):\n");
gets(V);
}
void Get_E(char E[])
{
printf("请输入一个有向图的边集(输入格式如:{<a,b>,<c,d>}):\n");
gets(E);
}
int sort_V(char V[], char Q[], int l)
{
int i, j = 0, k;
char temp;
for (i = 0; i < l; i++) //提取点集中的点
{
if (isalpha(V[i]))
{
Q[j] = V[i];
j++;
}
}
Q[j] = '\0';
for (i = 0; i < j - 1; i++) //冒泡排序
for (k = 0; k <