数据结构王道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;
}
相关推荐
甄心爱学习6 分钟前
【LR逻辑回归】原理以及tensorflow实现
算法·tensorflow·逻辑回归
十五年专注C++开发6 分钟前
tiny-process-library:一个用 C++ 编写的轻量级、跨平台(支持 Windows、Linux、macOS)的进程管理库
linux·c++·windows·进程管理
雾岛听蓝17 分钟前
C++异常处理
c++·经验分享·笔记
踢足球092918 分钟前
寒假打卡:2026-2-24
数据结构·算法·leetcode
牛马大师兄19 分钟前
数据结构复习 | 循环链表
c语言·数据结构·c++·笔记·链表
有为少年19 分钟前
位翻转排列 (Bit-Reversal Permutation) 解析
数据结构·人工智能·深度学习·算法·机器学习·计算机视觉
寻寻觅觅☆25 分钟前
东华OJ-基础题-133-FJ的字符串(C++)
算法
乌萨奇也要立志学C++31 分钟前
动态规划 线性 DP 经典四题一遍吃透
算法·动态规划
王老师青少年编程32 分钟前
csp信奥赛C++之约数研究
数据结构·c++·数学·算法·csp·信奥赛·约数研究
tobias.b33 分钟前
408真题解析-2010-41-数据结构-散列表
数据结构·散列表·计算机考研·408真题解析