数据结构王道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;
}
相关推荐
Tim_106 分钟前
【C++入门】04、C++浮点型
开发语言·c++
Ven%8 分钟前
从单轮问答到连贯对话:RAG多轮对话技术详解
人工智能·python·深度学习·神经网络·算法
山楂树の9 分钟前
爬楼梯(动态规划)
算法·动态规划
谈笑也风生13 分钟前
经典算法题型之复数乘法(二)
开发语言·python·算法
hkNaruto15 分钟前
【C++】记录一次C++程序编译缓慢原因分析——滥用stdafx.h公共头文件
开发语言·c++
智算菩萨17 分钟前
强化学习从单代理到多代理系统的理论与算法架构综述
人工智能·算法·强化学习
lhn18 分钟前
大模型强化学习总结
算法
Gigavision32 分钟前
MMPD数据集 最新Mamba算法 源码+数据集 下载方式
算法
Xの哲學41 分钟前
Linux UPnP技术深度解析: 从设计哲学到实现细节
linux·服务器·网络·算法·边缘计算
歌_顿41 分钟前
GPT 系列学习总结(1-3)
算法