图的深度优先算法
  6DMaaPzJglxt 2023年12月05日 31 0


图的邻接表存储结构

#include<iostream>
#include<stdlib.h> 
#define maxsize 100
using namespace std;
int visit[maxsize]={0};//初始化全为0 
//邻接矩阵,顺序存储 
typedef struct{
	int no;//顶点编号 
	char info;//顶点其他信息 
}VertexType;
//图的邻接矩阵
typedef struct{
	int edges[maxsize][maxsize];
	int n,e;
	VertexType vex[maxsize]; 
}MGraph;//嵌套结构体 ,线性结构 

//建立一个单链表,每个单链表的第一个结点存放有关顶点信息 
//邻接表,链式存储 
typedef struct ArcNode{
	int adjvex;
	struct ArcNode *nextarc;//指向下一条边的指针
	int info; 
}ArcNode;//子单链表 

typedef struct{
	char data;//顶点信息char
	ArcNode *firstarc;//指向第一条边的指针 
}VNode;//线性
 
typedef struct{
	VNode adjlist[maxsize];
	int n,e;
}AGraph;//邻接表 


int Visit(int &v){
	cout<<v<<endl;
	return v;
}//访问打印

//DFS深度优先 
int DFS(AGraph *G,int v){//v是点编号 
	ArcNode *p;
	visit[v]=1;//1访问,0未访问 
	Visit(v);
	p=G->adjlist[v].firstarc;//指向顶点V的第一条边 
	while(p!=NULL){
		if(visit[p->adjvex]==0){
		//为0未访问则指向下一顶点,递归访问 
		DFS(G,p->adjvex);
		p=p->nextarc;//指向下一个 
	} 
	return 1;
}

int main(){
	system("color 3");
	return 0;
}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 快速排序 下一篇: 极限编程来源与发展
  1. 分享:
最后一次编辑于 2023年12月05日 0

暂无评论

推荐阅读
6DMaaPzJglxt