邻接表和邻接矩阵手写简洁代码DFS BFS

本文介绍了如何使用邻接表进行广度优先搜索(BFS)和深度优先搜索(DFS),提供的代码简洁易懂,尽管编写过程较为复杂。
摘要由CSDN通过智能技术生成
这是通过邻接矩阵进行DFS
#include<iostream>
#include<string> 
#include<windows.h>
#define Max_ver_num 20
using namespace std  ;
bool visit[Max_ver_num] ;//这个数组的用途是标记
struct	HGraph{
		string vexs [ Max_ver_num ] ; //放每个顶点的数组的名字
		int arcs [Max_ver_num][Max_ver_num]  ; // ;邻接矩阵
		int vexnum ;	//顶点的数目
		int arcnum ; //边的数目,这边的边是没有权值的
		
}; 

int Locate ( HGraph G , string  x ) { //确定顶点的位置
		int k = 0;
		while(G.vexs[k] != x) {
			k++ ;
		}
		return k ;
}

void Create (HGraph &G){ //创建一个图,这里的图是指构造无向图,通过邻接矩阵构建
	int i = 0 , j , k;
	cout <<"输入图的顶点和边的数目: ";
	cin >>G.vexnum >>G.arcnum ;
	cout <<"依次输入各个顶点的名称 :"; 
	while (i<G.vexnum) {
		cin >>G.vexs[i++] ;
	}

	for(i = 0 ; i < G.vexnum;i++){
		for(j = 0 ; j < G.vexnum; j ++) {
			G.arcs[i][j] = 0 ;
		}
	}
	for( k=0 ;k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值