数据结构王道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;
}
相关推荐
我不是懒洋洋4 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
geovindu4 小时前
go:Backtracking Algorithm
开发语言·后端·算法·golang·回溯算法
神仙别闹4 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
微露清风4 小时前
模拟算法学习记录
学习·算法
WWTYYDS_6665 小时前
ProtoBuf超详细使用教程
c++
问商十三载5 小时前
2026法律行业AI引擎生成式优化怎么优化?三层专业加固提排名,零成本提33%引用率附适配表
java·前端·人工智能·算法
野生风长5 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++
雪的季节5 小时前
Python「假多态」与 C++「真多态」的核心区别
开发语言·c++
zander2585 小时前
138. 随机链表的复制
数据结构·算法·链表