![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
![]()
Имеется алгоритм Флери, для нахождения цикла Эйлера в графе . . .
program Project1; {$APPTYPE CONSOLE} uses SysUtils; const n=5; m=100; var G: array[1..n, 1..n] of Integer = ( (0, 1, 1, 1, 1), (1, 0, 1, 1, 1), (1, 1, 0, 1, 1), (1, 1, 1, 0, 1), (1, 1, 1, 1, 0) ); Var Stack: array[1..M] of integer; j, VV, k, p, q, s: integer; T: Boolean; Procedure Search(v: integer); var i: integer; Begin For i:=1 to N do If G[v,i]<>0 then begin G[v,i]:=0; G[i,v]:=0; Search(i); end; K:=K+1; Stack[K]:=v; End; BEGIN T:=true; For p:=1 to N do begin S:=0; For q:=1 to N do begin S:=S+G[p,q]; end; If S mod 2<>0 then T:=false; End; K:=0; Readln (VV); If T then Search (VV); If not T then writeln('Граф не является эйлеровым: в нем невозможно выделить эйлерового цикла'); For j:=1 to K do Write(Stack[j],' '); Readln; end. Результат : 1 5 4 3 5 2 4 1 3 2 1 При попытке переработать его на динамический массив, результат становится не правильным . . . Подскажите пожалуйста в чем проблемы ? ? ? Вот код : program Project2; {$APPTYPE CONSOLE} uses SysUtils; const n=5; m=100; var G: array of array of Integer; Var Stack: array[1..M] of integer; j, VV, k, p, q, s: integer; T: Boolean; Procedure Search(v: integer); var i: integer; Begin For i:=0 to High(G) do // Как мне кажется ошибка кроется где-то здесь . . . If G[v,i]<>0 then begin G[v,i]:=0; G[i,v]:=0; Search(i); end; K:=K+1; Stack[K]:=v; End; BEGIN SetLength(G, N - 1, N - 1); { Здесь стоит функция которая задает аналогичный массив ( (0, 1, 1, 1, 1), (1, 0, 1, 1, 1), (1, 1, 0, 1, 1), (1, 1, 1, 0, 1), (1, 1, 1, 1, 0) ); } T:=true; For p:=0 to High(G) do begin S:=0; For q:=0 to High(G) do begin S:=S+G[p,q]; end; If S mod 2<>0 then T:=false; End; K:=0; Readln (VV); If T then Search (VV); If not T then writeln('Граф не является эйлеровым: в нем невозможно выделить эйлерового цикла'); For j:=1 to K do Write(Stack[j],' '); Readln; end. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
![]()
Помогите пожалуйста, на завтра нужно здать курсовую, все уже готово, только вот это осталось
![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 15.12.2007
Сообщений: 422
|
![]()
Исправте ошибку
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм А* | Claster | Помощь студентам | 1 | 24.05.2011 18:45 |
Алгоритм | Artruman | Общие вопросы Delphi | 4 | 09.04.2009 00:59 |
Алгоритм | Artruman | БД в Delphi | 1 | 06.04.2009 00:30 |
Алгоритм | SunKnight | Работа с сетью в Delphi | 5 | 29.04.2008 15:24 |
Алгоритм | Rifler | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 30.03.2008 01:33 |