数据结构王道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;
}
相关推荐
罗超驿14 小时前
14.LeetCode 438 题解:滑动窗口+哈希表找所有字母异位词
java·算法·leetcode
白驹笙鸣14 小时前
STL allocator作用
开发语言·c++
小小编程路14 小时前
C++ STL 原理与性能
开发语言·c++
小欣加油14 小时前
leetcode239 滑动窗口最大值
数据结构·c++·算法·leetcode·哈希算法
luoganttcc14 小时前
FP16 和 BF16 的数学表达
算法
玖釉-14 小时前
Vulkan 示例解析:pipelines.cpp 如何在一个 Render Pass 中切换多条 Graphics Pipeline
c++·windows·算法·图形渲染
ji1985944314 小时前
局部线性嵌入(LLE)算法 MATLAB 实现
算法·机器学习·matlab
Deepoch14 小时前
Deepoc VLA开发板:无人机群体协同与无网络自主作业核心
网络·人工智能·算法·无人机·deepoc·具身模型开发板
随意起个昵称15 小时前
线性dp-计数类题目11(不等数列)
c++·算法·动态规划
并不喜欢吃鱼15 小时前
一.C++11:统一列表初始化 + std::initializer_list 超详细精讲
开发语言·c++