欧拉回路学习笔记

本文详细介绍了无向图与有向图中欧拉道路和欧拉回路的概念,阐述了其充分条件及性质,并提供了伪代码实现。在无向图中,若最多只有两个奇点且图连通,则存在欧拉道路;若有向图中最多两个点的入度不等于出度且连通,则存在欧拉道路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欧拉(通)回路

欧拉道路:

概念:

从无向图中的一个结点出发走出一条道路,每条边恰好经过一次。这样的路线称为欧拉道路,也可形象的称为“一笔画”。

性质:

除了起点和终点以外,其他点的“进出”次数应该相等。换句话说,除了起点和终点以外,其他点的度数应该是偶数;

这也就引出了欧拉道路的充分条件:如果一个无向图是连通的,且最多只有两个奇点,则一定是欧拉道路。且必须从一个奇点出发,另一个奇点终止;如果没有奇点,那么可以从任意点出发,最终会回到起点,这也就是欧拉回路

这个性质也可以用到有向图中:

最多只有两个点的入度不等于出度,而且必须是其中一个点的出度恰好比入度大1,另一个的入度比出度大1,前提是这个图连通;

伪代码实现:

void dfs(int u){
	for(int v=1;v<=n;v++){
		if(ma[u][v]&&!vis[u][v]){
			vis[u][v]=vis[v][u]=1;
			dfs(v);
			cout<<u<<" "<<v<<endl;//这里是倒序打印路径,如果要正序,入栈就行 
		}
	} 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值