Java 有没有从无向邻接列表中快速找到Euler回路的方法?
出于测试目的,我使用以下邻接矩阵:Java 有没有从无向邻接列表中快速找到Euler回路的方法?,java,adjacency-list,adjacency-matrix,Java,Adjacency List,Adjacency Matrix,出于测试目的,我使用以下邻接矩阵: A B C D E F A 0 1 1 0 0 0 B 1 0 1 1 1 0 C 1 1 0 1 1 0 D 0 1 1 0 1 1 E 0 1 1 1 0 1 F 0 0 0 1 1 0 由此,我可以得到以下邻接列表: A: B C B: A C
A B C D E F
A 0 1 1 0 0 0
B 1 0 1 1 1 0
C 1 1 0 1 1 0
D 0 1 1 0 1 1
E 0 1 1 1 0 1
F 0 0 0 1 1 0
由此,我可以得到以下邻接列表:
A: B C
B: A C D E
C: A B D E
D: B C E F
E: B C D F
F: D E
有没有一种快速的方法可以从这个列表中找到Euler回路?如果是这样的话,假设我可以用这个方法在列表的任何子集中找到可能的欧拉回路,这是正确的吗
感谢您的时间。要知道无向图中是否存在欧拉路径,必须满足两个条件:
- 所有非零度的顶点都属于单个连接组件
- 每个顶点的阶数必须是偶数
因此,从相邻列表所产生的图表中:
所以欧拉电路是A-B-C-D-B-E-F-D-E-C-A。我想我可能已经找到了一种方法,需要一点时间来编码,你说子集是什么意思?您可以很容易地验证是否存在欧拉回路:每个顶点的阶数都是偶数(给定图形是无向的)…您能确认一个可能的答案吗?字符串[]路径={“BA”,“AC”,“CB”,“BD”,“DE”,“EF”,“FD”,“DC”,“CE”,“EB”}工作吗?(索引是路径#)看。哦,是的,CommuSoft所说的是我建立的算法的更清晰版本,我甚至不确定我的算法是否正确。用它!