Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным

РусскиС Π‘Π»ΠΎΠ³ΠΈ

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.

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным

Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ симмСтричным. Π€ΠΎΡ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΊΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΈΠΌΠΌΠ΅Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠ”Ρ€ΡƒΠ·ΡŒΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ нравятся, ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠΉ Π»ΠΈΡ‡Π½Ρ‹ΠΉ WeChat, вмСстС ΠΌΡ‹ добьСмся прогрСсса

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° симмСтричноС Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ (ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄)

По Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌΡƒ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, являСтся Π»ΠΈ ΠΎΠ½ΠΎ Π·Π΅Ρ€ΠΊΠ°Π»ΠΎΠΌ само ΠΏΠΎ сСбС Π±Π΅Π· рСкурсии.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

ΠœΡ‹ обсудили рСкурсивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ постС:

Π’ этом постС обсуТдаСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ здСсь. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ для симмСтрии элСмСнты Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ 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 Π‘Ρ…Π΅ΠΌΠ° Π”Π΅Ρ‚Π°Π»ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *