没有合适的资源?快使用搜索试试~ 我知道了~
首页数据机构邻接矩阵的入度出度
写C程序,随机给出n*n的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每个顶点的度,并判断该图中是否存在Euler回路: (1)如果为n阶,则随机产生一个n*n的邻接矩阵; (2)输出邻接矩阵,边的个数,每个顶点的度以及图中是否存在Euler回路。 这个题目涉及到了两个主要的知识点,一个是数据结构中的有向图的邻接矩阵的创建,还有就是离散数学中的Euler回路的判定定理。
资源详情
资源评论
资源推荐

写 C 程序,随机给出 n*n 的邻接矩阵,并打印输出邻接矩阵,以及有向图的边的个数,每
个顶点的度,并判断该图中是否存在 Euler 回路: (1)如果为 n 阶,则随机产生一个 n*n
的邻接矩阵; (2)输出邻接矩阵,边的个数,每个顶点的度以及图中是否存在 Euler 回
路。 这个题目涉及到了两个主要的知识点,一个是数据结构中的有向图的邻接矩阵的创建,
还有就是离散数学中的 Euler 回路的判定定理。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define n 5 //定义矩阵的阶数 n
typedef int ver;
typedef int edg; //定义有向图的顶点和边值为整形
typedef struct{
ver v[n]; //顶点
edg e[n][n]; //边权
}graph; //定义邻接矩阵的数据结构
void printgraph (graph G) //打印输出邻接矩阵
{
int i,j;
printf("顶点");
for(i=0;i<n;i++)
printf("%3d",i);
printf("");
for(i=0;i<n;i++)
{
printf("%4d",i);
for(j=0;j<n;j++)
printf("%3d",G.e[i][j]);
printf("");
}
}
void countD (graph G) //判断有向图的顶点的度,并判断 Euler 回路
{
int i,j,l;
int e=0,count=0;
int k; //计数器赋 0
int c[n],d[n];
for (i=0;i<n;i++){
c[i]=0;
for (j=0;j<n;j++){
if (G.e[i][j]!=0)

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论1