wojiaoqingfeng 2022-12-28 19:13 采纳率: 78.6%
浏览 17
已结题

p指向顶点v的第一条弧头结点,当p不为空时


4、补充BEGIN-END之间的内容,完成DFS算法
#include <stdio.h>
#include <malloc.h>
typedef struct ANode
{    int adjvex;                    //该边的邻接点编号
    struct ANode *nextarc;        //指向下一条边的指针
    int weight;                    //该边的相关信息,如权值(用整型表示)
} ArcNode;                        //边结点类型
typedef struct Vnode
{    InfoType info;                //顶点其他信息
    int count;                    //存放顶点入度,仅仅用于拓扑排序
    ArcNode *firstarc;            //指向第一条边
} VNode;                        //邻接表头结点类型
typedef struct 
{    VNode adjlist[MAXV];        //邻接表头结点数组
    int n,e;                    //图中顶点数n和边数e
} AdjGraph;                        //完整的图邻接表类型
int visited[MAXV]={0};
void DFS(AdjGraph *G,int v)  
{
    ArcNode *p;
    visited[v]=1;                   //置已访问标记
    printf("%d  ",v);                 //输出被访问顶点的编号
/**********BEGIN**********/
/*
p指向顶点v的第一条弧的弧头结点,当p不为空时:
如果p->adjvex顶点未访问,递归访问它
否则,p指向顶点v的下一条弧的弧头结点
*/

    



/**********END**********/
}
  • 写回答

1条回答 默认 最新

  • 流比 2022-12-28 19:49
    关注
    
    p = G->adjlist[v].firstarc;
    while (p != NULL) {
    if (!visited[p->adjvex]) {
    DFS(G, p->adjvex);
    }
    p = p->nextarc;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月28日

悬赏问题

  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥100 已有python代码,要求做成可执行程序,程序设计内容不多
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助
  • ¥15 STM32控制MAX7219问题求解答
  • ¥20 在本地部署CHATRWKV时遇到了AttributeError: 'str' object has no attribute 'requires_grad'