数据结构王道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;
}
相关推荐
暖阳华笺13 小时前
【高频考点】回溯(暴力搜索)
数据结构·c++·算法·回溯法
hunterkkk(c++)13 小时前
学习dijkstra算法(c++)
c++·学习·算法
Chensay.13 小时前
链表的基本操作(C语言版)
数据结构·链表
lightqjx13 小时前
【算法】数据结构_单调队列
数据结构·算法·单调队列
c++之路13 小时前
Linux 下 C++ 开发环境搭建
linux·运维·c++
小四季豆13 小时前
《数据结构与算法》-顺序表:算法落地的第一个线性结构
c语言·数据结构·算法
8Qi813 小时前
LeetCode 96:不同的二叉搜索树(Unique Binary Search Trees)—— 题解 ✅
算法·leetcode·职场和发展·动态规划
1892280486113 小时前
NV041固态MT29F16T08GSLCEM9-QBES:C
人工智能·算法·microsoft·缓存·性能优化
罗超驿13 小时前
15.LeetCode 30. 串联所有单词的子串(Java):滑动窗口+哈希表详解
算法·leetcode
Marianne Qiqi13 小时前
非hot100的力扣算法题
数据结构·算法·leetcode