数据结构王道P234第二题

复制代码
#include<iostream>
using namespace std;
int visit[MAxsize];
int color[MaxSize];//1表示红,2表示白; 
bool dfs(Graph G, int i){
	visit[i]=1;
	ArcNode *p;
    bool flag=1;
	for(p=G.vertices[i].firsrarc; p ; p=p->next){
		int j=p->adjvex;
		if(!visit[j]){//如果没访问过,j就涂上相反颜色,继续递归涂色 
			if(color[i]==1)color[j]=2;
			else color[j]=1;
			flag=flag&&dfs(G, j); 
		}
		else{//如果访问过,判断j与i相邻点颜色,是否相同,不相同说明涂失败了,直接返回false;如果不同,不用管继续递归涂色 
			if(color[j]==color[i]){
				return false;
			}
		}
	}
	return flag;
} 

int main()
{
	color[1]=1;//将第一个点染红
	bool flag=bfs(G, 1); 
	return 0;
}
相关推荐
寻星探路18 小时前
【算法专题】滑动窗口:从“无重复字符”到“字母异位词”的深度剖析
java·开发语言·c++·人工智能·python·算法·ai
我叫袁小陌19 小时前
C++多线程全面详解
开发语言·c++
wen__xvn19 小时前
代码随想录算法训练营DAY14第六章 二叉树 part02
数据结构·算法·leetcode
Ka1Yan19 小时前
[数组] - 代码随想录(2-6)
数据结构·算法·leetcode
m0_7482500319 小时前
C++ 官方文档与标准
开发语言·c++
漫随流水20 小时前
leetcode算法(104.二叉树的最大深度)
数据结构·算法·leetcode·二叉树
matlabgoodboy20 小时前
程序代做python代编程matlab定制代码编写C++代写plc设计java帮做
c++·python·matlab
机器学习之心HML20 小时前
鲸鱼算法(WOA)优化Kriging模型
算法
DYS_房东的猫20 小时前
《 C++ 零基础入门教程》第6章:模板与 STL 算法 —— 写一次,用万次
开发语言·c++·算法
Tim_1020 小时前
【算法专题训练】37、前缀树&二叉树
算法