数据结构实验 图的遍历

本文通过实验深入解析图的遍历方法,包括深度优先搜索(DFS)和广度优先搜索(BFS),详细阐述了`travsal.h`头文件在实现过程中的关键作用,并展示了实际运行的结果,帮助读者理解并掌握图遍历的核心概念。
摘要由CSDN通过智能技术生成

数据结构 图的两种遍历方法


图有两种遍历方法,深度优先遍历和广度优先遍历。编写实验实现图的两种遍历运算,输出深度优先遍历与广度优先遍历之后的顶点序列。

travsal.h

#include <malloc.h>
#include<stdio.h>
#define MAXV 100//最大顶点个数
#define INF 32767//定义∞
int visited[MAXV];
typedef char InfoType;
typedef struct ANode
{
   
    int adjvex;//该边的邻接点编号 
    struct ANode *nextarc;//指向下一条边的指针    
    int weight;//该边的相关信息,如权值(这里用整型表示
}ArcNode;//边结点的类型
typedef struct Vnode
{
       	
     InfoType info;//结点的其他信息     
     ArcNode *firstarc;//指向第一个边结点
}VNode;//邻接表的头结点类型
typedef struct
{
      
    VNode adjlist[MAXV];//邻接表的头结点数组   
    int n,e;//图中的顶点数和边数
}AdjGraph;//完整的图邻接表类型 
void DFS(AdjGraph *G,int v)
{
       
     ArcNode *p;    
     visited[v]=1;    
     printf("%d ",v);    
     p=G->adjlist[v].firstarc;    
     while(p!=NULL)    
     {
           
     	if(visited[p->adjvex]==0)           
     	DFS(G,p->adjvex);        
     	p=p->nextarc;    
     }
} 
void BFS(AdjGraph *G,int v)
{
       
	int w,i;    
	ArcNode *p;    
	int visited[MAXV];    
	int queue[MAXV],
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值