编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 00:29:21
编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性

编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性
编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性

编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性
#include "stdio.h"
#include "stdlib.h"
#define MaxVertexNum 100
typedef char VertexType;
typedef struct node
{
\x09int adjvex;
\x09struct node *next;
}EdgeNode;
typedef struct vnode
{
\x09VertexType vertex;
\x09EdgeNode *firstedge;
}VertexNode;
typedef VertexNode AdjList[MaxVertexNum];
typedef struct
{
\x09AdjList adjlist;
\x09int n,e;
}ALGraph;
void CreatALGraph(ALGraph *G)
{
\x09int i,j,k;
\x09EdgeNode *s;
\x09scanf("%d%d",&G->n,&G->e);
\x09for(i = 0;i < G->n;i++)
\x09{
\x09\x09G->adjlist[i].vertex = getchar();
\x09\x09G->adjlist[i].firstedge = NULL;
\x09}
\x09for(k = 0;k < G->e;k++)
\x09{
\x09\x09scanf("%d%d",&i,&j);
\x09\x09s = (EdgeNode *)malloc(sizeof(EdgeNode));
\x09\x09s->adjvex = j;
\x09\x09s->next = G->adjlist[i].firstedge;
\x09\x09G->adjlist[i].firstedge = s;
\x09}
}
bool visited[MaxVertexNum];
void DFS(ALGraph *G,int i)
{
\x09EdgeNode *p = G->adjlist[i].firstedge;
\x09visited[i] = true;
\x09while(p)
\x09{
\x09\x09if(!visited[p->adjvex])
\x09\x09\x09DFS(G,p->adjvex);
\x09\x09p = p->next;
\x09}
}
bool IsConnected(ALGraph *G)
{
\x09int i,j;
\x09for(i = 0;i < G->n;i++)
\x09{
\x09\x09for(j = 0;j < G->n;j++)
\x09\x09\x09visited[j] = false;
\x09\x09DFS(G,i);
\x09\x09for(j = 0;j < G->n;j++)
\x09\x09\x09if(!visited[j])
\x09\x09\x09\x09return false;
\x09}
\x09return true;
}
int main()
{
\x09ALGraph G;
\x09CreatALGraph(&G);
\x09if(IsConnected(&G))
\x09\x09printf("连通\n");
\x09else
\x09\x09printf("不连通\n");
\x09system("pause");
}
//输入序列为"4 3abcd0 1 1 2 2 3",输出为"不连通"
//输入序列为"4 4abcd0 1 1 2 2 3 3 0",输出为"连通"

编写算法:a 从键盘读入有向图的顶点和弧,创建有向图的邻接表存储结构 b 判断图的连通性 编写算法,判断有向图中是否存在从顶点v出发的简单网络,若有则输出该回路. 编写算法,判断图中顶点A和顶点B之间是否有边 C语言:请编写一个程序,从键盘读入两个整数a和n,计算并输出a+aa+aaa+...+aa...a(n个a)的值.非常感谢.急用! 从键盘上读入长方形的边长a,b,计算它的面积和周长并输出 编写一个函数用于求前N个自然数偶数之和,主函数从键盘读入N值并调用编写的函数进行计算 要C++的 编写一个函数用于求前N个自然数偶数之和,主函数从键盘读入N值并调用编写的函数进行计算要C++的 已知n个顶点的有向图,用邻接矩阵表示,编写算法计算每对顶点的最短路径 数据结构算法题:若含有n个顶点的有向图采用邻接表方式存储,试编写算法求该有向图所有顶点的入度 编写一个算法,给有向无环图G中每个顶点赋以一个整数序号,并满足以下条件:若从顶点i 到顶点j有一条弧,则应使i 写一个程序,使用for语句,计算从键盘读入的一个整 数序列的和.其中读入的第一个数,表示该整数序列1. 写一个程序,使用for语句,计算从键盘读入的一个整数序列的和.其中读入的第一个数,表示 c++ 3Q仔有向图G中顶点只有编号的信息,如果r到G中的每个顶点都有路经可达,则称顶点r为G的根顶点.编写算法判断有向图G是否有根,若有,则显示所有的根顶点. 编写一个算法,从小到大依次输出顺序读入的三个整数x,y,z的值. 最小生成树 普里姆算法和克鲁斯卡尔算法基本功能要求:①输入并存储至少8个顶点14条边的无向图.②分别编写普里姆算法和克鲁斯卡尔算法,求出最小生成树,输出最小生成树的生成过程.好 编写程序,统计一个班的学生成绩.要求程序具有如下功能:(1) 每个学生的学号和四门功课的成绩从键盘读入.(2) 计算每个学生的总分和平均分.(3) 按平均成绩进行排序,输出排序后的成绩单( 从键盘上读入一批以负数结束的正整数,输出最大数,c语言 C语言:从键盘读入一个整数Num,按从小到大的顺序依次输出所有满足条件的3位数:该数各位数字的立方和 用c语言编程,要求从键盘读入一个由单词和空格组成的英文长句,分解其中单词,并按照字典顺序排列输出