?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
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