CÀI ĐẶT THUẬT TOÁN TÌM CHU TRÌNH EURLER
BẰNG CHƯƠNG TRÌNH PASCAL
Chu trình Euler.
Chương trình tìm chu trình Euler.
Dữ liệu được lấy từ tệp EULER.INP là ma trận :
n m
x
1
y
1
x
2
y
2
… …
x
m
y
m
Trong đó, n số đỉnh, m là số
cạnh
Sau khi lấy dữ liệu, chương trình sẽ xác định các có tồn tại chu
trình Euler hay không, nếu có thì tìm chu trình và lưu vào tệp
EULER.OUT có cấu trúc:
Dòng đầu : “NOSOLUTION” nếu không tồn tại chu trình
Euler
Dòng đầu : “YES” nếu tồn tại chu trình Euler
Dòng 2: z
1
,z
2
a[y,x]:=1;
end;
close(f);
end;
function kt:boolean;
var i,j,s,d:integer;
begin
d:=0;
for i:=1 to n do
begin
s:=0;
for j:=1 to n do
if(i<>j) then s:=s+a[i,j];
if s mod 2<>0 then inc(d);
end;
if d=0 then kt:=true
else kt:=false;
end;
procedure timp(var tim:mang;var spt:integer);
var x,u,v:integer;
begin
spt:=0;
c[1]:=1;u:=1;
repeat
v:=c[u];
x:=1;
while(x<=n) and (a[v,x]=0) do inc(x);
if a[v,x] <>0 then begin
inc(u);
c[u]:=x;
YES
1-->1-->2-->3-->4-->1