Π² ΠΊΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
101. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
101. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
ΠΎΡΠ²Π΅ΡΠ°ΡΡ:
Π Π΅ΡΠΈΠ΄ΠΈΠ²ΠΈΡΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄:


ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
Π’ΡΡΠ΄Π½ΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ ΡΠΎΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ²ΡΡΠ²ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌΠΈ, ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΠΈΡΡ. ΠΠ»ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΡΡΠΎ ΡΠ°ΠΌΠΈ, ΠΊΠ»ΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎ ΠΏΠΎΠ½ΡΡΡ Π³Π»ΡΠ±ΠΎΠΊΠΎ.
ΠΠ° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΠ°Π±ΠΎΡΡ? ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°Π·Π°, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π²ΠΎΠΏΡΠΎΡ, ΠΈΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ°ΠΊ, ΠΎΡΠΊΡΠ΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ Π»Π΅Π²ΠΎΠ΅ ΡΡΠ΄Π½ΠΎ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ Ρ ΠΏΡΠ°Π²ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°? Π― Π½Π°ΠΏΡΡΠΌΡΡ Π½Π°Π·ΡΠ²Π°Ρ Π»Π΅Π²ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΈ ΠΏΡΠ°Π²ΡΠ΅ Π°ΡΡΠ΅Π½ΠΈΡ: Π΅ΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΡΠ΅Π±Π΅Π½ΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ, Π»Π΅Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ, Π·Π°ΡΠ΅ΠΌ Π»Π΅Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ.
ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠΊΡΡΠ³? ΠΠ°ΠΊ Ρ ΡΡΠ²ΡΡΠ²ΡΡ, ΡΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ Ρ Ρ ΠΎΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Ρ ΠΏΠΎΠΉΠ΄Ρ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ A, Ρ Π±ΡΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅ A?
ΠΠΎΠ³Π΄Π° Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ Π·Π΄Π΅ΡΡ, ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΠΎΡΠΊΠ°: ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΠΎΡΠΊΠ°: ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΡΠ΄ΠΈΡΡ ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΠ΅ΠΉ Π΄Π΅ΡΠ΅ΠΉ Π΄Π²ΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π².
DEF Π€ΡΠ½ΠΊΡΠΈΡ A (Π»Π΅Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΏΡΠ°Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ): Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ·Π΅Π»Π° Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠ°Π²Π½ΠΎ ΡΡΠ΅Π΄Π½Π΅ΠΌΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ A (Π»Π΅Π²ΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, ΠΏΡΠ°Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°), ΡΡΠ½ΠΊΡΠΈΡ a ( ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, ΠΏΡΡΠΌΠΎ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, Π²Π΅ΡΠ½ΠΎ Π²Π΅ΡΠ½ΠΎ
ΠΡΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ. ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π·
ΠΠ°ΠΏΠΈΡΠ°ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ. ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π· ΠΡ Π½Π°ΠΉΠ΄Π΅ΡΠ΅, ΡΡΠΎ Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎ. ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π· ΠΡΠΊΠ°Π·
2. ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π·Π°ΠΊΠΎΠ½:

Π Π΅ΡΠΈΠ΄ΠΈΠ²ΠΈΡΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄:
2. ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ Π·Π°ΠΊΠΎΠ½:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: 
ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ Π΄Π΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΠ½ΠΈΠ³ ΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅.
ΠΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ β ΡΡΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ , Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ (ΠΎΠ½ΠΎ ΠΆΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈ ΠΊΠ»ΡΡΠΎΠΌ) ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°. Π£Π·Π΅Π», Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ (Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΠΉΡΡ ΡΡΠΈΠΌ Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠΌ) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠΎΡΠ½Π΅ΠΌ. Π£Π·Π»Ρ, Π½Π΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ ΠΏΠΎΡΠΎΠΌΠΊΠΎΠ² (ΠΎΠ±Π° ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π²Π½Ρ NULL) Π½Π°Π·ΡΠ²Π°ΡΡΡΡ Π»ΠΈΡΡΡΡΠΌΠΈ.
Π ΠΈΡ. 1 ΠΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
ΠΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° β ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ: Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° ΠΌΠ΅Π½ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π΄Π΅ΡΠ΅Π²Π°. Π’ΠΎ Π΅ΡΡΡ, Π΄Π°Π½Π½ΡΠ΅ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΠ°Π²ΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠ·Π»Π° ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π΄Π΅ΡΠ΅Π²Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ. ΠΡΠΈ ΠΏΠΎΠΈΡΠΊΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΊΠΎΡΠ½Π΅ΠΌ. ΠΡΠ»ΠΈ ΠΈΡΠΊΠΎΠΌΠΎΠ΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΡΠ½Ρ, ΡΠΎ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π² ΠΏΡΠ°Π²ΠΎΠΌ ΠΏΠΎΡΠΎΠΌΠΊΠ΅ ΠΊΠΎΡΠ½Ρ, Π΅ΡΠ»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅, ΡΠΎ Π² Π»Π΅Π²ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΡΠ°Π²Π½ΠΎ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ.
Π ΠΈΡ. 2 ΠΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
Π‘Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° β ΡΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Ρ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π²ΡΡΠΎΡΠΎΠΉ. ΠΠ°Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠ΅Π΅ ΠΈΠ΄Π΅ΠΉΠ½ΠΎΠ΅, ΡΠ΅ΠΌ ΡΡΡΠΎΠ³ΠΎΠ΅. Π‘ΡΡΠΎΠ³ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠΈΡΡΠ΅Ρ ΡΠ°Π·Π½ΠΈΡΠ΅ΠΉ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π΅Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π»ΠΈΡΡΠ° (Π² AVL-Π΄Π΅ΡΠ΅Π²ΡΡΡ
) ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π΅Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ Π»ΠΈΡΡΠ° (Π² ΠΊΡΠ°ΡΠ½ΠΎ-ΡΠ΅ΡΠ½ΡΡ
Π΄Π΅ΡΠ΅Π²ΡΡΡ
). Π ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΡΡ ΠΊ Π»ΡΠ±ΠΎΠΌΡ Π»ΠΈΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠ°). Π Π²ΡΡΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΠΎΠΈΡΠΊΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡΡΡΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π²ΡΡΠ°Π²Π»ΡΠ»Π°ΡΡ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ, Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡ Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ, ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, Π²ΡΡΠ°Π²ΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΡΡΠΎΠΌΡ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π΄Π΅ΡΠ΅Π²Π° ΠΊΡΠ°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½Π°. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°ΠΌΠΈ ΡΠ°ΡΡΠ΅ΠΉ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π΅ΡΠ»ΠΈ Π²ΡΡΠ°Π²ΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° Π½Π°ΡΡΡΠΈΠ»Π° ΡΡΠ»ΠΎΠ²ΠΈΠ΅ ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ.
Π ΠΈΡ. 3 Π‘Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
Π‘Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π±ΡΡΡΡΡΠΉ ΠΏΠΎΠΈΡΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠ΅ΡΠ΅Π΄ΡΡΡΠΈΠΉΡΡ ΡΠΎ Π²ΡΡΠ°Π²ΠΊΠ°ΠΌΠΈ Π½ΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡΠΌΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ . Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½Π°Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Ρ ΡΠ°Π½ΡΡΠΈΠΉΡΡ Π² ΡΡΡΡΠΊΡΡΡΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ ΠΈ Π½Π΅Ρ Π½ΠΎΠ²ΡΡ Π²ΡΡΠ°Π²ΠΎΠΊ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΉ, ΡΠΎ ΠΌΠ°ΡΡΠΈΠ² ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠΈΡΠ΅Π»ΡΠ½Π΅Π΅. ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠΈΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π·Π° ΡΠΎ ΠΆΠ΅ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, Π½ΠΎ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π‘++ Π°ΡΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡ set ΠΈ map ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ°.
Π ΠΈΡ. 4 ΠΠΊΡΡΡΠ΅ΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΡΠ±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΠΎΠΈΡΠΊΠ°
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠ΅ΠΊΡΡΡΠΈΡ. Π Π΅ΠΊΡΡΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ β ΡΡΠΎ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. Π ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ°ΠΌΠ° ΡΠ΅Π±Ρ ΠΈ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΡΠ°ΠΌΡΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» ΡΠ΅ΠΊΡΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ΅ΠΊΠ°. ΠΠ½ΡΡΡΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ·ΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ, Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ°ΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡ ΡΠ»ΡΡΠ°Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΠΎΠ² Π²Π½ΡΡΡΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΡΡΠ΅ΡΠ° ΡΠ°ΠΊΡΠΎΡΠΈΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠ΄ΡΠΈ Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠΌ, Π° Π²ΡΠ·ΠΎΠ²Ρ Π²Π½ΡΡΡΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° Π΄Π΅ΡΠ΅Π²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ΄ΡΠΈ Ρ ΡΠ·Π»Π°ΠΌΠΈ, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΌΠΈΡΡ Π΄Π°Π»ΡΡΠ΅ ΠΎΡ ΠΊΠΎΡΠ½Ρ, Π±Π»ΠΈΠΆΠ΅ ΠΊ Π»ΠΈΡΡΡΡΠΌ. Π Π΅ΠΊΡΡΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΌΠΎΠΉ (Π²ΡΠ·ΠΎΠ² Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΅Π±Ρ), Π½ΠΎ ΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π, Π° Π Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠΊΠ», Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΡΠ΅ΠΊ (LIFO).
ΠΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΡΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΎΡΠΈΠΈ Π³ΡΠ°ΡΠΎΠ². ΠΡΠ°Ρ β ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ. Π Π΅Π±ΡΠΎ β ΡΡΠΎ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ Π²Π΅ΡΡΠΈΠ½Π°ΠΌΠΈ. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅Π±Π΅Ρ Π² Π³ΡΠ°ΡΠ΅ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½ (Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠ½ΠΈΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΡΠ³ΡΠ°Π½Π½ΡΡ ΠΌΠ°ΡΡΠ΅ΠΉ). ΠΠ΅ΡΠ΅Π²ΠΎ β ΡΡΠΎ ΡΠ²ΡΠ·Π½ΡΠΉ Π³ΡΠ°Ρ Π±Π΅Π· ΡΠΈΠΊΠ»ΠΎΠ². Π‘Π²ΡΠ·Π½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ Π² Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ ΠΏΠΎ ΡΠ΅Π±ΡΠ°ΠΌ. ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΏΡΡΡ β Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ. ΠΠ±Ρ ΠΎΠ΄ Π³ΡΠ°ΡΠ° β ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΅Π³ΠΎ Π²Π΅ΡΡΠΈΠ½ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠ°Π·Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° Π²ΠΈΠ΄Π° ΠΎΠ±Ρ ΠΎΠ΄Π° Π³ΡΠ°ΡΠ°: 1) ΠΏΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ; 2) ΠΏΠΎΠΈΡΠΊ Π² ΡΠΈΡΠΈΠ½Ρ.
ΠΠΎΠΈΡΠΊ Π² ΡΠΈΡΠΈΠ½Ρ (BFS) ΠΈΠ΄Π΅Ρ ΠΈΠ· Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠ΅ΡΡ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅Π±ΡΠ° ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ, ΠΏΠΎΡΠΎΠΌ ΠΏΠΎΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ Π΄Π²Π° ΡΠ΅Π±ΡΠ° ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠΈΡΠΈΠ½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ Π½Π΅ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ (ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΌ). ΠΠ»Ρ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ (FIFO).
ΠΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ (DFS) ΠΈΠ΄Π΅Ρ ΠΈΠ· Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ, ΠΏΠΎΡΠ΅ΡΠ°Ρ Π΅ΡΠ΅ Π½Π΅ ΠΏΠΎΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠ½Ρ Π±Π΅Π· ΠΎΠ³Π»ΡΠ΄ΠΊΠΈ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΡΡΡ ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΉ ΠΏΡΠΈΡΠΎΠ΄Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ. ΠΠ»Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠΈ Π² ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ° Π΄Π°Π½Π½ΡΡ ΡΡΠ΅ΠΊ.
Π‘ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ, ΡΠ°ΠΊ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠΈΡΠΈΠ½Ρ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎΠΈΡΠΊΠ° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ. ΠΠ»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΠΈΠ½Ρ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΎΡΠ΅ΡΠ΅Π΄Ρ. Π Π΅ΠΊΡΡΡΠΈΡ Π² ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΠΈΠ½Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΈΠΊΠ». ΠΠ»Ρ ΠΎΠ±Ρ ΠΎΠ΄Π° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π±Π΅Π· ΡΡΠ΅ΠΊΠ°, ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎ ΡΡΠ΅ΠΊΠΎΠΌ. ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄Π° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ Π±Π΅Π· ΡΡΠ΅ΠΊΠ° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
ΠΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈ Π² ΡΠΈΡΠΈΠ½Ρ ΠΈ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ O(V + E), Π³Π΄Π΅ V β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Π΅ΡΡΠΈΠ½, E β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±Π΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΏΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ Π²Π΅ΡΡΠΈΠ½ ΠΈ ΡΠ΅Π±Π΅Ρ. ΠΠ°ΠΏΠΈΡΠΈ O(V + E) Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° Π·Π°ΠΏΠΈΡΡ O(max(V,E)), Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΠ°. Π’ΠΎ Π΅ΡΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈΠ· Π΄Π²ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π±Π΅Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠΈΡΠ½ΠΎ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Π΅ΡΡΠΈΠ½, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊ O(E), ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΠ»ΠΈ Π³ΡΠ°Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΠΆΠ΅Π½Π½ΡΠΉ, ΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
DFS ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ Π² ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π³ΡΠ°ΡΠ΅. BFS ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄Π»Ρ Π½Π°Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΠ°ΡΡΠ°ΠΉΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ Π² Π³ΡΠ°ΡΠ΅, Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ
ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ΅ΡΠΈ, Π² ΡΠ±ΠΎΡΡΠΈΠΊΠ°Ρ
ΠΌΡΡΠΎΡΠ°, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ β ΠΏΠ°ΡΠΊΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄Π²ΠΈΠΆΠΊΠ°. Π DFS ΠΈ BFS ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π² Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ ΠΏΠΎΠΈΡΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅Π²Π°, ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ ΡΠΈΠΊΠ»ΠΎΠ² Π² Π³ΡΠ°ΡΠ΅, Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄Π²ΡΠ΄ΠΎΠ»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ±Ρ
ΠΎΠ΄Ρ Π² ΡΠΈΡΠΈΠ½Ρ Π² Π³ΡΠ°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±Ρ
ΠΎΠ΄ ΠΏΠΎ ΡΡΠΎΠ²Π½ΡΠΌ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°. ΠΡΠΈ Π΄Π°Π½Π½ΠΎΠΌ ΠΎΠ±Ρ
ΠΎΠ΄Π΅ ΠΈΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ·Π»ΠΎΠ² ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ²Π΅ΡΡ
Ρ Π²Π½ΠΈΠ· ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ. ΠΠ±Ρ
ΠΎΠ΄Ρ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ Π² Π³ΡΠ°ΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΡΠΈ Π²ΠΈΠ΄Π° ΠΎΠ±Ρ
ΠΎΠ΄ΠΎΠ² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°: ΠΏΡΡΠΌΠΎΠΉ (pre-order), ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ (in-order) ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ (post-order).
ΠΡΡΠΌΠΎΠΉ ΠΎΠ±Ρ ΠΎΠ΄ ΠΈΠ΄Π΅Ρ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅: ΠΊΠΎΡΠ΅Π½Ρ, Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ, ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ β Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ, ΠΊΠΎΡΠ΅Π½Ρ, ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ. ΠΠ±ΡΠ°ΡΠ½ΡΠΉ β Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ, ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ, ΠΊΠΎΡΠ΅Π½Ρ. Π ΠΊΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠ·ΠΎΠ²ΠΎΠ² (ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°), Π³Π΄Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΡΠ½Ρ ΠΈΠ΄Π΅Ρ Π²ΡΠ·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π½Π°ΠΌ Π΄Π°Π½ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π΅ΡΠ΅Π²Π°, ΠΈ Π½ΡΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Ρ, ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΠ΅Ρ Π½ΠΈΠΊΠ° (ΡΠΌ. ΡΠΈΡ. 5). ΠΠ±Π²ΠΎΠ΄ΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ ΠΎΠ³ΠΈΠ±Π°ΡΡΠ΅ΠΉ Π·Π°ΠΌΠΊΠ½ΡΡΠΎΠΉ ΠΊΡΠΈΠ²ΠΎΠΉ (Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΠΈΠ΄ΡΠΈ ΡΠ»Π΅Π²Π° Π²Π½ΠΈΠ· ΠΈ Π·Π°ΠΌΡΠΊΠ°Π΅ΠΌ ΡΠΏΡΠ°Π²Π° Π²Π²Π΅ΡΡ ). ΠΡΡΠΌΠΎΠΌΡ ΠΎΠ±Ρ ΠΎΠ΄Ρ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ³ΠΈΠ±Π°ΡΡΠ°Ρ, Π΄Π²ΠΈΠ³Π°ΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ·Π»Π°ΠΌΠΈ ΡΠ»Π΅Π²Π°. ΠΠ»Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ³ΠΈΠ±Π°ΡΡΠ°Ρ, Π΄Π²ΠΈΠ³Π°ΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ·Π»Π°ΠΌΠΈ ΡΠ½ΠΈΠ·Ρ. ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ³ΠΈΠ±Π°ΡΡΠ°Ρ, Π΄Π²ΠΈΠ³Π°ΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ Π²ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΡΠ΄ΠΎΠΌ Ρ ΡΠ·Π»Π°ΠΌΠΈ ΡΠΏΡΠ°Π²Π°. Π ΠΊΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΠΈΠ΄Π΅Ρ: Π²ΡΠ·ΠΎΠ², Π»Π΅Π²ΡΠΉ, ΠΏΡΠ°Π²ΡΠΉ. Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ β Π»Π΅Π²ΡΠΉ, Π²ΡΠ·ΠΎΠ², ΠΏΡΠ°Π²ΡΠΉ. ΠΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ β Π»Π΅Π²ΡΠΉ ΠΏΡΠ°Π²ΡΠΉ, Π²ΡΠ·ΠΎΠ².
Π ΠΈΡ. 5 ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΡΠ½ΠΎΠΊ Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄ΠΎΠ²
ΠΠ»Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄Π΅ΡΠ΅Π²ΡΠ΅Π² ΠΏΠΎΠΈΡΠΊΠ° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ ΠΎΠ±Ρ ΠΎΠ΄ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π²ΡΠ΅ ΡΠ·Π»Ρ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΡΠ΅ΡΠΈΡΡ ΡΠ·Π»Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΡΠΎ Π² ΠΊΠΎΠ΄Π΅ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΈ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ°.
ΠΠ°Π΄Π΅ΡΡΡ ΠΡ Π½Π΅ ΡΡΠ½ΡΠ»ΠΈ, ΠΈ ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π°. Π‘ΠΊΠΎΡΠΎ Π½Π°Π΄Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π±Π°Π½ΠΊΠ΅ΡΠ° ΡΡΠ°ΡΡΠΈ.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
ΠΠ΅Ρ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ | ΠΠΎΠΏΡΠΎΡ 28: Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ
ΠΠ΅ΡΠ΅ΠΏΠ΅ΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΡΡ ΡΡΠ°ΡΡΡ, ΡΠΊΠ°ΠΆΠΈΡΠ΅ Π°Π²ΡΠΎΡΠ° ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
ΠΡΠ° ΡΡΠ°ΡΡΡ Π²Π·ΡΡΠ° ΠΈΠ·Β«ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΠ°ΡΠ²ΠΈΠ½Π°Β»
ΠΠ°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΏΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²Π·ΡΡΡ ΠΈΠ· Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΡ Β«ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ-ΠΏΠ°Π»Π΅ΡΒ».
ΠΠ°ΡΠ½ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, ΡΡ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΡΠΏΠ΅Ρ Π°, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½Π°Ρ Π½Π°ΠΌ, ΠΊΡΠΎ Π±ΠΎΡΠ΅ΡΡΡ
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ Π΅Π³ΠΎ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΎ ΠΎΠ½ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ [1,2,2,3,4,4,3] ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ. 
ΠΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ [1,2,2, null, 3, null, 3] Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΠ΅ΠΉ: 
ΠΡΠ»ΠΈ ΡΡΠΎ ΠΏΡΡΡΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΎΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΌΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌΡ Π΄Π΅ΡΠ΅Π²Ρ (Π²ΠΎΠΏΡΠΎΡ Π½Π΅ Π΄Π°Π΅Ρ ΡΡΠΎΠ³ΠΎ ΡΡΠ»ΠΎΠ²ΠΈΡ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΏΠΎΡΠ΅Ρ
ΠΠ½Π°Π»ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ²Π΅ΡΠ½ΡΡΠΎ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡΠ°Π²ΠΎ Ρ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΡΠ·Π»ΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΈ;
Π Π΅ΠΊΡΡΡΠΈΡ
ΠΠΎΠ³Π΄Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ? ΠΡΠ»ΠΈ Π»Π΅Π²ΠΎΠ΅ ΠΈ ΠΏΡΠ°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠΈΡΠ»Π° Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎ-ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½Ρ, ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ;
Π’ΠΎΠ³Π΄Π° ΠΏΡΠΈ ΠΊΠ°ΠΊΠΈΡ
ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°Ρ
Π΄Π²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° ΡΠ²Π»ΡΡΡΡΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌΠΈ?
ΠΠΎΡΠ½Π΅Π²ΡΠ΅ ΡΠ·Π»Ρ ΡΠ°Π²Π½Ρ, Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΈ ΠΏΡΠ°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΡΠ²Π»ΡΡΡΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌΠΈ Π΄Π΅ΡΠ΅Π²ΡΡΠΌΠΈ, Π° ΠΏΡΠ°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΈ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠ½ΠΎ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌ Π΄Π²ΠΎΠΈΡΠ½ΡΠΌ Π΄Π΅ΡΠ΅Π²ΠΎΠΌ
ΠΏΠΎΡ
ΠΎΠΆ Π½Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π·Π΅ΡΠΊΠ°Π»ΠΎΠΌ ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΡΠ΅Π±Ρ. Π£ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π·Π΅ΡΠΊΠ°Π»Π΅ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅ Π³ΠΎΠ»ΠΎΠ²Π°, ΠΊΠ°ΠΊ Ρ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΡΡΠ°ΠΆΠ΅Π½Π½Π°Ρ ΠΏΡΠ°Π²Π°Ρ ΡΡΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΊΠ΅ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
ΠΡΠΎ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅;
ΠΡΠ΅ΡΠ°ΡΠΈΡ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄Π»Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΆΠ΄ΡΠ΅ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ·Π»Π° Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ°Π²Π½Ρ, Π° ΠΈΡ
ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΡΡ ΡΠ²Π»ΡΡΡΡΡ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ Π΄ΡΡΠ³Π°. ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π±ΡΠ»ΠΈ root ΠΈ root. ΠΠ»Π³ΠΎΡΠΈΡΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ BFS, Π½ΠΎ Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ. ΠΠ·Π²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ ΠΏΠΎ Π΄Π²Π° ΡΠ·Π»Π° Π·Π° ΡΠ°Π· ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°ΠΉΡΠ΅ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ°ΡΠ΅ΠΌ Π²ΡΡΠ°Π²ΡΡΠ΅ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠ΅ ΡΠ·Π»Ρ Π΄Π²ΡΡ
ΡΠ·Π»ΠΎΠ² Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π² ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠΎΠ³Π΄Π° ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΡΡΠ° ΠΈΠ»ΠΈ ΠΌΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΠΌ, ΡΡΠΎ Π΄Π΅ΡΠ΅Π²ΠΎ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ (ΡΠΎ Π΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ
Π½Π΅ΡΠ°Π²Π½ΡΡ
ΡΠ·Π»Π° ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ· ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ), Π°Π»Π³ΠΎΡΠΈΡΠΌ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
ΠΠΎΠ΄ (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ JAVA)
ps: Π·Π΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ jdk Π²Π΅ΡΡΠΈΠΈ 1.8.

ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ (ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄)
ΠΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌΡ Π΄Π΅ΡΠ΅Π²Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΎ Π·Π΅ΡΠΊΠ°Π»ΠΎΠΌ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ Π±Π΅Π· ΡΠ΅ΠΊΡΡΡΠΈΠΈ.
ΠΡΠΈΠΌΠ΅ΡΡ:
ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅:
Π ΡΡΠΎΠΌ ΠΏΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΡΠ΅ΡΠ΅Π΄Ρ Π·Π΄Π΅ΡΡ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π»Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΠ½ΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 2 Π½Π° ΡΡΠΎΠ²Π½Π΅ Π»ΠΈΡΡΡΠ΅Π² β ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΠ½ΡΠΌΠΈ.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ,
1. ΠΠ΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° = ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°.
2. ΠΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° = Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°.
ΠΡΠ»ΠΈ ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΡΠ°Π²ΠΈΠΌ Π»Π΅Π²ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π²Π½Ρ.
Π’ΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅, Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΡΠ°Π²ΠΈΠΌ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠ°Π²ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°, Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»Π΅Π²ΡΠΉ Π΄ΠΎΡΠ΅ΡΠ½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°, ΠΌΡ ΡΠ½ΠΎΠ²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π²Π½Ρ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΈΠ΄Π΅Π΅.
// C ++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ
// ΠΠ΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ
#include
using namespace std;
// Π£Π·Π΅Π» Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π°
struct Node* left, *right;
// Π‘Π΅ΡΠ²ΠΈΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·Π»Π°
Node *newNode( int key)
Node *temp = new Node;
temp->left = temp->right = NULL;
// ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ
// Ρ.Π΅. Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠ΅Π±Ρ
bool isSymmetric( struct Node* root)
// ΠΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π°, ΡΠΎ
// ΡΡΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ.
// ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ root Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π²Π° ΡΠ°Π·Π°, ΡΡΠΎΠ±Ρ
// ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π΅ΡΠ΅ΠΉ
// ΠΎΠ΄ΠΈΠ½ ΡΠ°Π²Π΅Π½ NULL ΠΈΠ»ΠΈ Π½Π΅Ρ.
// Π₯ΡΠ°Π½ΠΈΡΡ Π΄Π²Π° ΡΠ·Π»Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΈΡ
Node* leftNode, *rightNode;
// Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΡΠ·Π»Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
// Π΅ΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ
// ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, Π½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅
// ΠΠ°ΠΆΠΌΠΈΡΠ΅ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
// ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
if (leftNode->left && rightNode->right)<
// ΠΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½
// Π° ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ NULL, Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ
// Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ.
else if (leftNode->left || rightNode->right)
// ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
// ΠΈ Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
if (leftNode->right && rightNode->left)<
// ΠΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½
// Π° ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅ NULL, Π·Π°ΡΠ΅ΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ
// Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ.
else if (leftNode->right || rightNode->left)
// ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π²
// ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠΈΡΡΠ½ΠΎΠΊ
Node *root = newNode(1);
cout «The given tree is Symmetric» ;
cout «The given tree is not Symmetric» ;
// ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ Nikhil jindal.
// ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
// Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ
public class BinaryTree
/ * ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠ½Ρ * /
/ * ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ * /
public boolean isSymmetric(Node root)
/ * ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ * /
Queue q = new LinkedList ();
/ * ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ root * /
/ * ΡΠ΄Π°Π»ΠΈΡΡ 2 ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΡ ΡΠ·Π»Π°
ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ * /
Node tempLeft = q.remove();
Node tempRight = q.remove();
/ * Π΅ΡΠ»ΠΈ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΈ chcek
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² * /
if (tempLeft== null && tempRight== null )
if ((tempLeft== null && tempRight!= null ) ||
(tempLeft!= null && tempRight== null ))
/ * Π΅ΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, Π½ΠΎ
/ * ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
1) Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
2) ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
3) ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
4) Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° * /
/ * Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Π·Π΄Π΅ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ, Π²Π΅ΡΠ½ΡΡΡ true * /
/ * ΡΡΠ½ΠΊΡΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ * /
public static void main(String[] args)
Node n = new Node( 1 );
BinaryTree bt = new BinaryTree(n);
bt.root.left = new Node( 2 );
bt.root.right = new Node( 2 );
bt.root.left.left = new Node( 3 );
bt.root.left.right = new Node( 4 );
bt.root.right.left = new Node( 4 );
bt.root.right.right = new Node( 3 );
System.out.println( «The given tree is Symmetric» );
System.out.println( «The given tree is not Symmetric» );
# Python3 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΠ»ΠΈ
# Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ
# ΠΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ
# ΡΠ·Π΅Π» Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈ None
# Π»Π΅Π²Π°Ρ ΠΈ ΠΏΡΠ°Π²Π°Ρ ΠΏΠ°ΡΡ.
# ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·Π»Π°
# ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ
# ΠΠ²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ
def isSymmetric( root) :
# ΠΡΠ»ΠΈ ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ·Π΅Π» Π΄Π΅ΡΠ΅Π²Π°,
# ΡΠΎΠ³Π΄Π° ΡΡΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ.
if ( not root.left and not root.right):
# ΠΠΎΠ±Π°Π²ΠΈΡΡ root Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π²Π° ΡΠ°Π·Π°, ΡΡΠΎΠ±Ρ
# ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·
# ΡΠ΅Π±Π΅Π½ΠΎΠΊ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π²Π΅Π½ NULL ΠΈΠ»ΠΈ Π½Π΅Ρ.
# Π₯ΡΠ°Π½ΠΈΡΡ Π΄Π²Π° ΡΠ·Π»Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
# Π£Π΄Π°Π»ΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΡΠ·Π»Π°
# ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡ.
# Π΅ΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ
# ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, Π½ΠΎ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅
# ΡΠ΅Π½Π½ΠΎΡΡΠΈ-. Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ, Π²Π΅ΡΠ½ΡΡΡ Π»ΠΎΠΆΡ
# Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
# ΡΠ·Π΅Π» ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²Π°
# ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠ·Π»Π° Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
if (leftNode.left and rightNode.right) :
# ΠΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π±Π΅Π½ΠΎΠΊ
# ΠΎΠ΄ΠΈΠ½ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π²Π΅Π½ NULL, ΡΠΎΠ³Π΄Π°
# Π΄Π΅ΡΠ΅Π²ΠΎ Π½Π΅ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ.
elif (leftNode.left or rightNode.right) :
# Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΌΠΊΠ° Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
# ΡΠ·Π΅Π» ΠΈ Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
if (leftNode.right and rightNode.left):
# ΠΡΠ»ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π±Π΅Π½ΠΎΠΊ
# ΠΎΠ΄ΠΈΠ½ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π²Π΅Π½ NULL, ΡΠΎΠ³Π΄Π°
# Π΄Π΅ΡΠ΅Π²ΠΎ Π½Π΅ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ.
elif (leftNode.right or rightNode.left):
if __name__ = = ‘__main__’ :
# ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΡΡΠΎΠΈΠΌ Π΄Π΅ΡΠ΅Π²ΠΎ
# ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΈΡΡΠ½ΠΊΠ΅ Π²ΡΡΠ΅
root.left = newNode( 2 )
root.right = newNode( 2 )
root.left.left = newNode( 3 )
root.left.right = newNode( 4 )
root.right.left = newNode( 4 )
root.right.right = newNode( 3 )
print ( «The given tree is Symmetric» )
print ( «The given tree is not Symmetric» )
# ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½
# Π¨ΡΠ±Ρ
Π°ΠΌ Π‘ΠΈΠ½Π³Ρ
(SHUBHAMSINGH10)
// ΠΡΠ΅ΡΠ°ΡΠΈΠ²Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° C # Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
// Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ
public class BinaryTree
public Node left, right;
/ * ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΡΠ½Ρ * /
/ * ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ Π΄Π΅ΡΠ΅Π²ΠΎ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ * /
public bool isSymmetric(Node root)
/ * ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΡΠ»Π΅Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄Ρ * /
Queue q = new Queue ();
/ * ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ root * /
/ * ΡΠ΄Π°Π»ΠΈΡΡ 2 ΠΏΠ΅ΡΠ΅Π΄Π½ΠΈΡ ΡΠ·Π»Π°
ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ * /
Node tempLeft = q.Dequeue();
Node tempRight = q.Dequeue();
/ * Π΅ΡΠ»ΠΈ ΠΎΠ±Π° ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ null, ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΠΈ chcek
Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² * /
if (tempLeft== null && tempRight== null )
if ((tempLeft== null && tempRight!= null ) ||
(tempLeft!= null && tempRight== null ))
/ * Π΅ΡΠ»ΠΈ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠ·Π»Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ, Π½ΠΎ
/ * ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΡΠ°Π²ΠΊΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
1) Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
2) ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ Π΄ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
3) ΠΏΡΠ°Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π°
4) Π»Π΅Π²ΡΠΉ ΠΏΠΎΡΠΎΠΌΠΎΠΊ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠ΅Π²Π° * /
/ * Π΅ΡΠ»ΠΈ ΠΏΠΎΡΠΎΠΊ Π·Π΄Π΅ΡΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ, Π²Π΅ΡΠ½ΡΡΡ true * /
public static void Main(String[] args)
BinaryTree bt = new BinaryTree(n);
bt.root.left = new Node(2);
bt.root.right = new Node(2);
bt.root.left.left = new Node(3);
bt.root.left.right = new Node(4);
bt.root.right.left = new Node(4);
bt.root.right.right = new Node(3);
Console.WriteLine( «The given tree is Symmetric» );
Console.WriteLine( «The given tree is not Symmetric» );
// ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ PrinciRaj1992
ΠΡΡ ΠΎΠ΄:
ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅, ΠΈΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΠΎΠΉ Π²ΡΡΠ΅ ΡΠ΅ΠΌΠ΅.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
Leetcode 101 Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ C ++, Java, Python
Π‘ΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ Leetcode100
ΠΡΡΠΎΡΠ½ΠΈΠΊ: LeetCode
Π‘ΡΡΠ»ΠΊΠ°: https://leetcode-cn.com/problems/symmetric-tree/
ΠΠ»Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½ΠΎ Π·Π΅ΡΠΊΠ°Π»ΡΠ½ΠΎ-ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΌ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ Π΄Π΅ΡΠ΅Π²ΠΎ [1,2,2,3,4,4,3] ΠΠ½ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΠΉ.
ΠΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ [1,2,2,null,3,null,3] ΠΡΠΎ Π½Π΅ Π·Π΅ΡΠΊΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡΡΠΈΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ»ΡΡΠΎΠΌ.
ΠΠ΄Π΅ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ:
ΠΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ²ΡΠΉ: ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ
ΠΠ½ΡΡΠΈΡΠΈΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ
Python
ΠΠ½Π°Π»ΠΈΠ· ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ
ΠΠ΅ΡΠΎΠ΄ 2: ΠΈΡΠ΅ΡΠ°ΡΠΈΡ
ΠΠ½ΡΡΠΈΡΠΈΠ²Π½Π°Ρ ΠΈΠ΄Π΅Ρ
Python
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°:
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ
ΠΠΎΠΏΡΠΎΡ Π»Π΅ΡΠ°ΠΊΠΎΠ΄Π°: 703. Π-ΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π΄Π°Π½Π½ΡΡ
Π-ΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²ΠΎΠΏΡΠΎΡ Π»Π΅ΡΠ°ΠΊΠΎΠ΄Π°
ΠΠΎ Π¦Π·ΡΠ½Ρ ΠΠ΅ΡΠΊΠΎΠ΄ ΠΠΎΠΏΡΠΎΡ:ΠΠ΅ΡΡΠΈΡ Π΄Π»Ρ Gitbook ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π²Π΅ΡΡ ΠΠΎ Π¦Π·ΡΠ½Ρ ΠΠ΅ΡΠΊΠΎΠ΄ ΠΠΎΠΏΡΠΎΡ:ΠΠΎΡΡ CSDN ΠΠ΅ΡΠ΅Π΄Π½ΠΈΠΉ ΠΊΠΎΠ½Π΅Ρ Π² Π·Π°ΠΊΠ°Π·:ΠΠΎΡΡΠ°Π» GitBook ΠΠΎ-Π²ΡΠΎΡ.
2 Π‘Π»ΡΡΠ°ΠΉ 2: Π Π°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° LVS-NAT 2.1 ΠΠΎΠΏΡΠΎΡ ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ LVS Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ NAT Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ²: 2.2 Π‘Ρ Π΅ΠΌΠ° ΠΠ΅ΡΠ°Π»ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡ.






