%Fleury算法:寻找欧拉回路,除非万不得已,否则不走割边
function T = myeuler(A,startp)
[T,~] = fleury3(A,startp);%
T = T';
function [T,sleds]=fleury3(A,startp)
[m,n]=size(A); % 返回A的行数和列数
if m~=n % 判断A是不是方阵 (~=:不等于)
fprintf('A不是方阵\n');
return;
end
temp=sum(A,1); % 返回各列求和的一个行向量
tteds=sum(temp); % 得到A各元素之和:同sum(sum(A))
sleds=0;
mtr = A;
eulerPath = startp;
while tteds ~= sleds
listNp = find(mtr(startp,:)==1); % 返回一个向量,该向量包含数组A第startp行的每个非零元素的线性索引。
nosNgbr = length(listNp); % 返回向量listNp的长度
if nosNgbr ==1
nextp = listNp(1
11-01
1719
