欧拉回路学习笔记

欧拉(通)回路

欧拉道路:

概念:

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

性质:

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

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

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

最多只有两个点的入度不等于出度,而且必须是其中一个点的出度恰好比入度大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;//这里是倒序打印路径,如果要正序,入栈就行 
		}
	} 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值