pta 遍历时用裁判定义的函数 4-2 邻接矩阵存储图的深度优先遍历 (20分)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pta 遍历时用裁判定义的函数 4-2 邻接矩阵存储图的深度优先遍历 (20分)相关的知识,希望对你有一定的参考价值。

函数接口定义:void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );其中MGraph是邻接矩阵存储的图,定义如下:typedef struct GNode *PtrToGNode;struct GNode int Nv; /* 顶点数 */ int Ne; /* 边数 */ WeightType G[MaxVertexNum][MaxVertexNum]; /* 邻接矩阵 */;typedef PtrToGNode MGraph; /* 以邻接矩阵存储的图类型 */函数DFS应从第V个顶点出发递归地深度优先遍历图Graph,遍历时用裁判定义的函数Visit访问每个顶点。当访问邻接点时,要求按序号递增的顺序。题目保证V是图中的合法顶点。裁判测试程序样例:#include <stdio.h>typedef enum false, true bool;#define MaxVertexNum 10 /* 最大顶点数设为10 */#define INFINITY 65535 /* ∞设为双字节无符号整数的最大值65535*/typedef int Vertex; /* 用顶点下标表示顶点,为整型 */typedef int WeightType; /* 边的权值设为整型 */typedef struct GNode *PtrToGNode;struct GNode int Nv; /* 顶点数 */ int Ne; /* 边数 */ WeightType G[MaxVertexNum][MaxVertexNum]; /* 邻接矩阵 */;typedef PtrToGNode MGraph; /* 以邻接矩阵存储的图类型 */bool Visited[MaxVertexNum]; /* 顶点的访问标记 */MGraph CreateGraph(); /* 创建图并且将Visited初始化为false;裁判实现,细节不表 */void Visit( Vertex V ) printf(" %d", V);void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) );int main() MGraph G; Vertex V; G = CreateGraph(); scanf("%d", &V); printf("DFS from %d:", V); DFS(G, V, Visit); return 0;/* 你的代码将被嵌在这里 */输入样例:给定图如下5输出样例:DFS from 5: 5 1 3 0 2 4 6

参考技术A 这个应该可以
//插入排序
#ifndef LIST_H
#define LIST_H
#include<iostream>
using namespace std;

template<class number>
class List

public:追问

大神不行啊

编译器:gcc
时间限制:400ms
内存限制:64MB
代码长度限制:16kB
判题程序:系统默认
作者:DS课程组
单位:浙江大学
这是要求~

参考技术B void DFS( MGraph Graph, Vertex V, void (*Visit)(Vertex) )

Visit(V);
Visited[V]=true;
for(int w=0;w<Graph->Nv;w++)


if((Graph->G[V][w])==1&&!Visited[w])

DFS(Graph,w,Visit);



[PTA]实验10-7 递归求Fabonacci数列

本题要求实现求Fabonacci数列项的函数。Fabonacci数列的定义如下:

f(n)=f(n−2)+f(n−1) (n≥2),其中f(0)=0,f(1)=1。

函数接口定义:

int f( int n );

函数f应返回第n个Fabonacci数。题目保证输入输出在长整型范围内。建议用递归实现。

裁判测试程序样例:

#include <stdio.h>

int f( int n );

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\\n", f(n));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

6

输出样例:

8
  • 提交结果:

在这里插入图片描述

  • 源码:
#include <stdio.h>

int f(int n);

int main()
{
    int n;

    scanf("%d", &n);
    printf("%d\\n", f(n));

    return 0;
}

/* 你的代码将被嵌在这里 */
int f(int n)
{
    if (n == 0)
    {
        return 0;
    }
    else if (n == 1)
    {
        return 1;
    }
    else
    {
        return f(n - 1) + f(n - 2);
    }
}

以上是关于pta 遍历时用裁判定义的函数 4-2 邻接矩阵存储图的深度优先遍历 (20分)的主要内容,如果未能解决你的问题,请参考以下文章

用邻接表表示图进行深度优先遍历时,通常采用()来实现算法

PTA 邻接表存储图的广度优先遍历(20 分)

(机考)无向图的深度优先搜索

数据结构之图邻接矩阵邻接表

图 - 存储结构之邻接矩阵

[PTA]实验8-1-6 函数实现字符串逆序