Вы находитесь на странице: 1из 7

20.

, -.
()
. ( )
, .
( ) :
0 ( vn),
1, 1
, 2, 2
, . . 1 1 . . i+1
i (. 14.1).

. ,
.
i,
i+1.
0. ,
- vn .
!

, . (. 20.1).
, ..

.

4
:
0, 1, 2, 3, 4
1, 0, 3, 2, 4
2, 0, 3, 4, 1
3, 1, 2, 4, 0
4, 2, 3, 0, 1

. 20.1.

: j
p, .
20.1.
. 20.2
1, .
20.1. () ,
vn
#define NOV -1
/* -
*/
int p[n];
/* ; */
...
/* , vn */
void obhod_gr_sh (int vn)
{ <== vn; p[vn] = vn;
do
{ ==> v; v;
/* n */
for (j (v))
if (p[j]==NOV)
/* m */
{ <== j; p[j] = v; }
/* n */
} while ( != );
/* n */
}
...
for (i=0; i<n; i++) p[i] = NOV;
/* p
*/
obhod_gr_sh (vn);
/* , vn */
: for (x S) . . . ,
x S ( - "").

p[j] v,
j j . , . .
, j (..
).

NOV,

,
.
p
(
, ).
i vn - v[1], ... , v[L],
v[1]=i, v[L]=vn, v[k]=p[v[k-1]] k>1.
0

4
vn = 1
/ \
0

/
2
1

j = 0 1 2 3 4
p[j] = 1 1 0 1 3
3
\
4

3
. 20.2. 1

20.1
, (
).
20.2.
20.2. ()
for (i=0; i<n; i++) p[i] = NOV;
for (vn=1; vn<=n; vn++)
if (p[vn]==NOV) obhod_gr_sh(vn);

/* p

*/

/* , vn

*/


, , . . .


, , :
() , , -
.
20.1.

. .
. 20.4 , ( )
: 1, 2, 4, 5, 3, 1; : 1, 2, 4, 3, 1 : 3, 4, 5, 3.
- .
1

5

0 1 1 0 0
1 0 0 1 0
1 0 0 1 1
0 1 1 0 1
0 0 1 1 0
3: 5 3 4 5

. 20.4.

: ( )
.
, ,
( -
). , ,
. ,
(. 20.5).
4

1
3

...
4
3
1

4
5

5
5

3
1
...

4

2 3
. . .

3
1

...
5
2
3
...

1 4

5
...
5

3
...

. 20.5. , . 20.1 20.3



.

, .
.
( , . . ),
, n, ..
. ,
3 n. - ;
.

- (
). ( - !)
, .
) , 3 (*dcmin==3).
) ,
(k>= *dcmin). , ,
(k=k-3; ... k++;).

) , ,
(vn < v[0]), ..
.
1,
(v[+1] = v[0]).
. 20.5
.
pminc.
,
, , ) -
3, .

.

.

, j,
, ..
vn j.

vn j, ,
.. . (
).

1.

, 40 .
2. .
3. .
4. ,
.
6

5. 20.1
:
j =0123456
p[j] = 3 4 3 1 4 6 4
) ?
)
3?
) , p.

Вам также может понравиться