13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

инициализация переменных<br />

PTR=0; V= KP; I = KP+1;<br />

for K=1:JKV<br />

M=ta (K); N=he(K); NEXT(I)=NEXT(M); ADJ(I) =N; NEXT(M)= I;<br />

I= I + 1 ; NEXT(I) =NEXT(N); ADJ(I) =M; NEXT(N)=I; I= I + 1 ;<br />

end;<br />

LIST(KP+1) =0; I=1; N=1; LIST(1)=V; VECTOR(V)=0; VISIT(V)=1;<br />

//поиск узлов ветвей, относящихся к дереву<br />

while 1==1,<br />

M=LIST(N); PTR=M;<br />

while 1==1,<br />

NNN=NEXT(PTR); PTR=NNN;<br />

if PTR==0 then break, end;<br />

J=ADJ(PTR);<br />

if VISIT(J)= = 0 then<br />

I= I + 1 ; LIST(I) =J; VISIT(J)= I; VECTOR(J)=M;<br />

end;<br />

end;<br />

N=N+1;<br />

if LIST(N)= =0 then break, end;<br />

end;<br />

//формирование массива с номерами ветвей дерева и хорд<br />

vet=size(VECTOR);yvet=vet(1);<br />

for m=1:JKV<br />

derevo(1,m) =m;<br />

end;<br />

for k1=1:yvet(1)<br />

if VECTOR(k1)< > 0 then, k2=VECTOR(k1); end;<br />

for m=1:JKV<br />

if ((ta(m) = = k1&he(m) = = k 2 ) | ( t a ( m) = = k 2 &he(m) = = k 1 )) then<br />

derevo(1,m) =0;break; end;<br />

end;<br />

end;<br />

derevo<br />

В результате формируется массив, в котором ненулевые элементы соответствуют<br />

ветвям хорд, номера нулевых элементов соответствуют ветвям<br />

дерева.<br />

derevo =<br />

1. 2. 0. 0. 0. 6.<br />

В данном случае 1, 2 и 6-я ветви – это ветви дерева, 3, 4 и 5-я ветви –<br />

ветви хорд.<br />

Приведенный алгоритм поиска ветвей дерева может быть использован<br />

в тех языках программирования, где нет соответствующих встроенных<br />

функций или библиотек.<br />

65

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!