学好python搞大事! 2022-06-09 17:05 采纳率: 66.7%
浏览 71
已结题

七巧问题 c语言程序已给出 mian函数问号处该怎么写呢

#include<stdio.h>
#include<stdlib.h>
#define MAXV 1000 /最大顶点数设为1000/
typedef struct { /定义结构体类型/
int Visited[MAXV]; /顶点标记/
int Edges[MAXV][MAXV]; /邻接矩阵数组/
int VertexN,EdgeN; /顶点和边数/
}Graph; /用邻接矩阵存储的图结构体/

void InitializeG(Graph*G)
{ /图的初始化/
int i,j;
for(i=0;i<MAXV;i++)
{
for(j=0;j<MAXV;j++)
G->Edges[i][j]=0;
G->Visited[i]=0;
}
G->VertexN=G->EdgeN=0;
}

void ReadG(Graph*G) /读入并存储一个图/
{
int i,V1,V2;
scanf("%d%d",&G->VertexN,&G->EdgeN); /用户输入顶点数和边数/
for(i=0;iEdgeN;i++)
{
scanf("%d%d",&V1,&V2); /输入顶点名称,比坐标大1(1到N)/
G->Edges[V1-1][V2-1]=G->Edges[V2-1][V1-1]=1;
}
}

void DFS(Graph*G,int V)
{ /图G的深度优先搜索/
int W;
G->Visited[V]=1; /将访问到的结点进行标记/
for(W=0;WVertexN;W++)
if (G->Edges[V][W]&&!G->Visited[W])
DFS(G,W);
}

int CheckG(Graph*G)
{ /检查边的度是否全为偶数/
int r,i,j;
for(i=0;iVertexN;i++)
{
r=0;
for(j=0;jVertexN;j++)
r+=G->Edges[i][j];
if (r%2) return 0; /发现奇数度的边则返回0/
}
return 1; /全是偶数度的边则返回1/
}

int main()
{
int i;
GraphG=(Graph)malloc(sizeof(Graph));

return 0;
}
注:(1)
输入说明:输入的第1行包含两个正整数,分别为结点数N(1<N<1000)和
边数M。随后的M行对应M条边,每行给出一对正整数,分别是该条边连
通的两个结点的编号(结点从1到N编号)。
(2)
输出说明:若欧拉回路存在则输出1,否则输出0。
(3)
测试实例:
1)输入:
6 10
1 2
2 3
3 1
4 5
5 6
6 4
1 4
1 6
3 4
3 6
输出:1
(说明:存在欧拉回路)
2)输入:
5 8
1 2
1 3
2 3
2 4
2 5
5 3
5 4
3 4
输出:0
(说明:不存在欧拉回路)

  • 写回答

1条回答 默认 最新

  • sinJack 2022-06-09 18:21
    关注

    不就调用一下方法吗。

    #include<stdio.h>
    #include<stdlib.h>
    #define MAXV 1000 //最大顶点数设为1000//
    typedef struct { //定义结构体类型//
    int Visited[MAXV]; //顶点标记//
    int Edges[MAXV][MAXV]; //邻接矩阵数组//
    int VertexN,EdgeN; //顶点和边数//
    }Graph; //用邻接矩阵存储的图结构体//
    
    void InitializeG(Graph*G)
    { //图的初始化//
    int i,j;
    for(i=0;i<MAXV;i++)
    {
    for(j=0;j<MAXV;j++)
    G->Edges[i][j]=0;
    G->Visited[i]=0;
    }
    G->VertexN=G->EdgeN=0;
    }
    
    void ReadG(Graph*G) //读入并存储一个图//
    {
    int i,V1,V2;
    scanf("%d%d",&G->VertexN,&G->EdgeN); //用户输入顶点数和边数//
    for(i=0;i<G->EdgeN;i++)
    {
    scanf("%d%d",&V1,&V2); //输入顶点名称,比坐标大11到N)//
    G->Edges[V1-1][V2-1]=G->Edges[V2-1][V1-1]=1;
    }
    }
    
    void DFS(Graph*G,int V)
    { //图G的深度优先搜索//
    int W;
    G->Visited[V]=1; //将访问到的结点进行标记//
    for(W=0;G->VertexN;W++)
    if (G->Edges[V][W]&&!G->Visited[W])
    DFS(G,W);
    }
    
    int CheckG(Graph*G)
    { //检查边的度是否全为偶数//
    int r,i,j;
    for(i=0;i<G->VertexN;i++)
    {
    r=0;
    for(j=0;j<G->VertexN;j++)
    r+=G->Edges[i][j];
    if (r%2) return 0; //发现奇数度的边则返回0//
    }
    return 1; //全是偶数度的边则返回1//
    }
    
    int main()
    {
    Graph *G=(Graph*)malloc(sizeof(Graph));
    InitializeG(G);
    ReadG(G);
    
    printf("%d",CheckG(G));
    return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月10日
  • 已采纳回答 6月9日
  • 修改了问题 6月9日
  • 修改了问题 6月9日
  • 展开全部

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程