Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π”Π΅Ρ€Π΅Π²ΠΎ

Π”Π΅Ρ€Π΅Π²ΠΎ – структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° связанных ΡƒΠ·Π»ΠΎΠ².

Бпособ прСдставлСния Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°:
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠšΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π° располоТСн Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ.

Если элСмСнт Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΎΠ½ называСтся листом ΠΈΠ»ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π°.

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ элСмСнты – Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ (ΡƒΠ·Π»Ρ‹ вСтвлСния).

Π‘ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ примСняСтся Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ принято ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°Π΄Π°Ρ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π½Π° Π΄Π΅Ρ€Π΅Π²Π΅.

РаспространСнная Π·Π°Π΄Π°Ρ‡Π° β€” Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ p с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом Π΄Π΅Ρ€Π΅Π²Π°. Π—Π΄Π΅ΡΡŒ p рассматриваСтся ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ посСщСния всСх ΡƒΠ·Π»ΠΎΠ² ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°.

Если Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс, Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ располоТСнными Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.

Бпособы ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°

ΠŸΡƒΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎ, Π³Π΄Π΅ A β€” ΠΊΠΎΡ€Π΅Π½ΡŒ, B ΠΈ C β€” Π»Π΅Π²ΠΎΠ΅ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

БущСствуСт Ρ‚Ρ€ΠΈ способа ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°:

РСализация Π΄Π΅Ρ€Π΅Π²Π°

Π£Π·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ структуру:

ΠŸΡ€ΠΈ этом ΠΎΠ±Ρ…ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π² прСфиксной Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄

ΠžΠ±Ρ…ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π² инфиксной Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄

ΠžΠ±Ρ…ΠΎΠ΄ Π΄Π΅Ρ€Π΅Π²Π° Π² постфиксной Ρ„ΠΎΡ€ΠΌΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄

Π‘ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ (Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅) Π΄Π΅Ρ€Π΅Π²ΠΎ поиска – это Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ условия (свойства Π΄Π΅Ρ€Π΅Π²Π° поиска):

Π”Π°Π½Π½Ρ‹Π΅ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° опСрация сравнСния мСньшС.

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, информация, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π», являСтся записью, Π° Π½Π΅ СдинствСнным ΠΏΠΎΠ»Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Для составлСния Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ добавлСния ΡƒΠ·Π»Π° Π² Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ·Π»ΠΎΠ² Π² Π΄Π΅Ρ€Π΅Π²ΠΎ

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΡƒΡŽ частоту встрСчаСмости слов Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ список слов Π·Π°Ρ€Π°Π½Π΅Π΅ Π½Π΅ извСстСн, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ. НСразумно ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ поиском ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ слова, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Π»ΠΎΡΡŒ ΠΎΠ½ΠΎ Ρ€Π°Π½Π΅Π΅ ΠΈΠ»ΠΈ Π½Π΅Ρ‚, Ρ‚.ΠΊ. Π² этом случаС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ.

Один ΠΈΠ· способов β€” постоянно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… слов, помСщая ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅ слово Π² Ρ‚Π°ΠΊΠΎΠ΅ мСсто, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π»Π°ΡΡŒ ΠΈΠΌΠ΅ΡŽΡ‰Π°ΡΡΡ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ. Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ.

Π’ Π΄Π΅Ρ€Π΅Π²Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» содСрТит:

Рассмотрим Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Ρ€Π°Π·Ρ‹

now is the time for all good men to come to the aid of their party

ΠŸΡ€ΠΈ этом Π΄Π΅Ρ€Π΅Π²ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π΅Ρ€Π΅Π²ΡŒΡ

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ вас с понятиСм Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°ΠΊ структуры Π΄Π°Π½Π½Ρ‹Ρ…, пояснит Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΈ для Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ:

1 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ (Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ)?

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° β€” Β«Π³Ρ€Π°Ρ„ Π±Π΅Π· ΠΏΠ΅Ρ‚Π΅Π»ΡŒ ΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ²Β» вряд-Π»ΠΈ пояснит рядовому Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΡƒ ΠΊΠ°ΠΊΠΈΠ΅ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ….

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠ½ΠΈΠ³Π°Ρ…, посвящСнным Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ рСкурсивно. Π”Π΅Ρ€Π΅Π²ΠΎ являСтся Π»ΠΈΠ±ΠΎ пустым, Π»ΠΈΠ±ΠΎ состоит ΠΈΠ· ΡƒΠ·Π»Π° (корня), ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ количСства Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (это количСство опрСдСляСт Π°Ρ€Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²Π°) [1, 2].

Π Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой ΡΡ‚Π°Ρ‚ΡŒΠΈ): Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это способ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ иСрархичСской структуры.

Когда ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Π΅ структуры:

Π”Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск [3] выполняСтся Π½Π°Π΄ отсортированным массивом. На ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС искомый элСмСнт сравниваСтся со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, находящимся посСрСдинС массива. Π’ зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² сравнСния β€” Π»ΠΈΠ±ΠΎ лСвая, Π»ΠΈΠ±ΠΎ правая части ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Β«ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹Β».

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ β€” способ упорядочивания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², соотвСтствСнно ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ для ускорСния поиска. ИмСнно этому посвящСна ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

2 Π”Π΅Ρ€Π΅Π²ΡŒΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…

Π˜Ρ‚Π°ΠΊ, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это информация ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π·Π° нСсколько Π»Π΅Ρ‚, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ β€” Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ„ΠΈΡ€ΠΌΠ°Ρ… Π² вашСм Π³ΠΎΡ€ΠΎΠ΄Π΅. Как Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€ΠΈ вашСго прилоТСния? β€” ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ этими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ асимптотичСскиС ΠΎΡ†Π΅Π½ΠΊΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ структурами Π΄Π°Π½Π½Ρ‹Ρ…. На случай Ссли Π²Ρ‹ Π΅Ρ‰Π΅ Π½Π΅ освоили асимптотичСский Π°Π½Π°Π»ΠΈΠ·, Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ количСства дСйствий, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ ΠΈΠ· 10 тысяч элСмСнтов.

ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ (ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ)

поиск элСмСнта с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ

вставка элСмСнта (значСния)

(Π²Π΅Ρ€Π½Π΅Ρ‚ i-Ρ‚Ρ‹ΠΉ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ элСмСнт)

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ массивов являСтся Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ области памяти. Π—Π° счСт этого обСспСчиваСтся максимальная ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ доступа, ΠΎΠ΄Π½Π°ΠΊΠΎ:

ΠŸΡ€ΠΈ поискС значСния Π² массивС ΠΌΡ‹ Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС ΠΏΠ΅Ρ€Π΅Π±Π΅Ρ€Π΅ΠΌ всС элСмСнты, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ O(n) ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Однако, Ссли массив упорядочСн β€” ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивнСС.

Π”Π΅Ρ€Π΅Π²ΡŒΡ поиска, ΠΊΠ°ΠΊ ΠΈ связныС списки состоят ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², связанных указатСлями. Однако ΡƒΠ·Π»Ρ‹ эти упорядочСны ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” Π·Π° счСт этого увСличиваСтся ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ поиска, Π½ΠΎ ослоТняСтся опСрация вставки элСмСнта. Π­Ρ‚Π° структура Π΄Π°Π½Π½Ρ‹Ρ…, Π² рядС случаСв,ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ прСимущСства Π½Π°Π΄ массивами ΠΈ связными списками β€” посмотрим Π·Π° счСт Ρ‡Π΅Π³ΠΎ это обСспСчиваСтся…

3 Π”Π΅Ρ€Π΅Π²ΡŒΡ поиска

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ состоит ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…Ρ€Π°Π½ΠΈΡ‚ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Π²Π΅ ссылки β€” Π½Π° ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΈ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ. Если справа ΠΈΠ»ΠΈ слСва Π½Π΅Ρ‚ ΡƒΠ·Π»ΠΎΠ² β€” ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ссылка Ρ€Π°Π²Π½Π° Π½ΡƒΠ»ΡŽ (Π² Π‘++ β€” Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ). Π”Π΅Ρ€Π΅Π²ΠΎ прСдставляСтся ΠΊΠΎΡ€Π½Π΅ΠΌ (ссылкой Π½Π° самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ·Π΅Π»).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²Π° поиска Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ построСния β€” значСния Π²Π΅Ρ€ΡˆΠΈΠ½ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π° ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ – большС.

ΠŸΡ€ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, начиная с Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°, значСния Π±ΡƒΠ΄ΡƒΡ‚ просмотрСны Π² порядкС нСубывания, начиная с ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ – нСвозрастания, Ρ‚.Π΅. Π΄Π΅Ρ€Π΅Π²ΠΎ поиска Ρ…Ρ€Π°Π½ΠΈΡ‚ отсортированныС Π΄Π°Π½Π½Ρ‹Π΅:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ вставки выполняСт Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ листа Π² Π΄Π΅Ρ€Π΅Π²ΠΎ, Ρ‚ΠΎ справа ΠΈ слСва ΠΎΡ‚ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ пусто ( null ). ΠŸΡ€ΠΈ вставкС ΠΌΡ‹ выполняСм поиск подходящСй свободной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ трСбования «значСния Π²Π΅Ρ€ΡˆΠΈΠ½ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда ΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π° ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ – большС». Алгоритм вставки значСния E Π² Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ описанного Ρ‚ΡƒΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вставки ΡƒΠ·Π»ΠΎΠ² β€” Ссли ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Π½Π° Π²Ρ…ΠΎΠ΄ упорядочСнныС Π΄Π°Π½Π½Ρ‹Π΅ β€” Ρ‚ΠΎ Π΄Π΅Ρ€Π΅Π²ΠΎ «вытянСтся» Π² ΠΎΠ±Ρ‹ΠΊΠ½ΠΎΠ²Π΅Π½Π½Ρ‹ΠΉ двусвязный список. Π’ частности, для выполнСния поиска Π² Ρ‚Π°ΠΊΠΎΠΌ Β«Π΄Π΅Ρ€Π΅Π²Π΅Β» ΠΈΠ· N элСмСнтов Π½Π°ΠΌ придСтся ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ укзатСлям N Ρ€Π°Π·.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· Π΄Π΅Ρ€Π΅Π²Π° поиска, нСсколько Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Π΅Π΅, поэтому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ‚ΡƒΡ‚ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½, Π·Π°Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡΠ½Π΅ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½Ρ‹ΠΉ массивупорядочСнный массивнСупорядочСнный двусвязный списоксбалансированноС Π΄Π΅Ρ€Π΅Π²ΠΎ поиска

4 Kd-Π΄Π΅Ρ€Π΅Π²ΡŒΡ

Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… появляСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ хранСния ΠΈ эффСктивной ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° плоскости. Π­Ρ‚ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ картографичСскиС прилоТСния, Π½ΠΎ ΠΈ всС Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ ΠΈΠ³Ρ€Ρ‹. Π—Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈΡΡŒ Π»ΠΈ Π²Ρ‹ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ эту Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠœΡ‹ ΡƒΠΆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ для эффСктивной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ упорядочСнными. Однако, ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ? β€” вСдь Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ (ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ) ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Π° сортировка ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ обСспСчит ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ поиска. ИмСнно эти ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Kd-Π΄Π΅Ρ€Π΅Π²ΡŒΡ.

ΠžΠ±Ρ‰Π°Ρ идСя kd-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ плоскости, содСрТащСй ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π° части (ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Π΅ области) Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ области содСрТится ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. ΠŸΡ€ΠΈ этом, ΠΌΠ΅ΠΆΠ΄Ρƒ областями ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ иСрархичСскиС зависимости, Π·Π° счСт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ поиска. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ kd-Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ сСкущСй плоскости.

Π—Π°Π΄Π°Ρ‡Π°: Π΅ΡΡ‚ΡŒ мноТСство Ρ‚ΠΎΡ‡Π΅ΠΊ, находящихся Π½Π° плоскости, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру, исходя ΠΈΠ· ΠΈΡ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ для обСспСчСния эффСктивного поиска. ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТных гСомСтричСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Π½Π΅ Ρ‚ΠΎΡ‡Π΅ΠΊ) ΠΈ пространств Π±ΠΎΠ»ΡŒΡˆΠΈΡ… размСрностСй.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π‘ Ρ‚Π°ΠΊΠΎΠΉ структурой Π΄Π°Π½Π½Ρ‹Ρ…, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π²ΠΎΠ΄Π° всСх Ρ‚ΠΎΡ‡Π΅ΠΊ, входящих Π² ΠŸΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π¦Π²Π΅Ρ‚ΠΎΠΌ Π½Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ схСмС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ поиска. Она Π½Π΅ пСрСсСкаСтся с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ B (располоТСнной Π»Π΅Π²Π΅Π΅ А ). Π”Π°ΠΆΠ΅ Ссли Π±Ρ‹ Π² этой области Π±Ρ‹Π»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ β€” ΠΌΡ‹ «отсСкли» Π±Ρ‹ ΠΈΡ… Π·Π° ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° β€” Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск Π½Π° плоскости. Визуализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°:
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ пСрСстроСния Π΄Π΅Ρ€Π΅Π²Π° β€” Ссли ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ пСрСмСстился ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ области Β«Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎΒ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ.

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся Kd-Π΄Π΅Ρ€Π΅Π²ΡŒΡ с цикличСским ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΎΠΌ ΠΏΠΎ измСрСниям. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° сСкущСй плоскости β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΊΠ²Π°Π΄Ρ€Π°Π΄Π΅Ρ€Π΅Π²Π° Π΄Π΅Π»ΠΈΡ‚ свою Ρ‡Π°ΡΡ‚ΡŒ плоскости Π½Π° 4 части (лСвая вСрхняя, лСвая ниТняя, правая вСрхняя, ΠΏΡ€Π°Π²Π° ниТняя). Если Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ части оказываСтся Π±ΠΎΠ»Π΅Π΅ 1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° β€” Ρ‚ΠΎ ΠΎΠ½Π° дСлится дальшС. ΠžΠΊΡ‚Π°Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΡƒΡŽΡ‚ эту идСю ΠΊ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ пространству.

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

Π”Π΅Ρ€Π΅Π²ΠΎ (структура Π΄Π°Π½Π½Ρ‹Ρ…)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π”Π΅Ρ€Π΅Π²ΠΎ β€” ΠΎΠ΄Π½Π° ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространённых структур Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, ΡΠΌΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° связанных ΡƒΠ·Π»ΠΎΠ². ЯвляСтся связанным Π³Ρ€Π°Ρ„ΠΎΠΌ, Π½Π΅ содСрТащим Ρ†ΠΈΠΊΠ»Ρ‹. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ источников Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ условиС Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Ρ‘Π±Ρ€Π° Π³Ρ€Π°Ρ„Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этим Ρ‚Ρ€Ρ‘ΠΌ ограничСниям, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… источниках ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎ Ρ€Ρ‘Π±Ρ€Π° Π³Ρ€Π°Ρ„Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π·Π²Π΅ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ

Π”Π΅Ρ€Π΅Π²ΠΎ считаСтся ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ, Ссли Π² ΠΊΠΎΡ€Π΅Π½ΡŒ Π½Π΅ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎ Ρ€Π΅Π±Ρ€ΠΎ.

Π£Π·Π΅Π» являСтся экзСмпляром ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² элСмСнтов Π³Ρ€Π°Ρ„Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ фиксированной ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρ‹. Π£Π·Π΅Π» ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, состояниС ΠΈΠ»ΠΈ прСдставлСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ структуры ΠΈΠ»ΠΈ самого Π΄Π΅Ρ€Π΅Π²Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° ΠΈΠΌΠ΅Π΅Ρ‚ ноль ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ·Π»ΠΎΠ²-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π½ΠΈΠΆΠ΅ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ (ΠΏΠΎ соглашСнию, Π΄Π΅Ρ€Π΅Π²ΡŒΡ ‘растут’ Π²Π½ΠΈΠ·, Π° Π½Π΅ Π²Π²Π΅Ρ€Ρ…, ΠΊΠ°ΠΊ это происходит с настоящими Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ). Π£Π·Π΅Π», ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°, называСтся ΡƒΠ·Π»ΠΎΠΌ-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ своСго ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ° (ΠΈΠ»ΠΈ ΡƒΠ·Π»ΠΎΠΌ-ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ, ΠΈΠ»ΠΈ ΡΡ‚Π°Ρ€ΡˆΠΈΠΌ). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ°. Высота ΡƒΠ·Π»Π° β€” это максимальная Π΄Π»ΠΈΠ½Π° нисходящСго ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ этого ΡƒΠ·Π»Π° ΠΊ самому Π½ΠΈΠΆΠ½Π΅ΠΌΡƒ ΡƒΠ·Π»Ρƒ (ΠΊΡ€Π°Π΅Π²ΠΎΠΌΡƒ ΡƒΠ·Π»Ρƒ), Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌΡƒ листом. Высота ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Ρ€Π°Π²Π½Π° высотС всСго Π΄Π΅Ρ€Π΅Π²Π°. Π“Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности ΡƒΠ·Π»Π° Ρ€Π°Π²Π½Π° Π΄Π»ΠΈΠ½Π΅ ΠΏΡƒΡ‚ΠΈ Π΄ΠΎ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°.

ΠšΠΎΡ€Π½Π΅Π²Ρ‹Π΅ ΡƒΠ·Π»Ρ‹

Π‘Π°ΠΌΡ‹ΠΉ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° называСтся ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ. Π‘Ρ‹Ρ‚ΡŒ самым Π²Π΅Ρ€Ρ…Π½ΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ отсутствиС Ρƒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΏΡ€Π΅Π΄ΠΊΠΎΠ². Π­Ρ‚ΠΎ ΡƒΠ·Π΅Π», Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ начинаСтся Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ (хотя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с «листов» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ, ΠΏΠΎΠΊΠ° Π½Π΅ достигнут корня). ВсС ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ достигнуты ΠΏΡƒΡ‚Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° ΠΏΠΎ Ρ€Ρ‘Π±Ρ€Π°ΠΌ (ΠΈΠ»ΠΈ ссылкам). (Богласно Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ). Π’ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΎΠ½ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ изобраТаСтся Π½Π° самой Π²Π΅Ρ€ΡˆΠΈΠ½Π΅. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΡƒΡ‡Π°Ρ…, ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ особыми свойствами. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°, «растущСго» ΠΈΠ· этого ΡƒΠ·Π»Π°.

ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ

ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ β€” Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСна Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. Π›ΡŽΠ±ΠΎΠΉ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π° T вмСстС со всСми Π΅Π³ΠΎ ΡƒΠ·Π»Π°ΠΌΠΈ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π° T. Для любого ΡƒΠ·Π»Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» этого ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π°, Π»ΠΈΠ±ΠΎ сам ΡƒΠ·Π΅Π» Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ связано с ΠΊΠΎΡ€Π½Π΅Π²Ρ‹ΠΌ ΡƒΠ·Π»ΠΎΠΌ Ρ†Π΅Π»Ρ‹ΠΌ Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ, Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π° со всСми ΠΏΡ€ΠΎΡ‡ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· понятиС ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ (ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠΌ Β«ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ подмноТСство»).

УпорядочиваниС Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π²

БущСствуСт Π΄Π²Π° основных Ρ‚ΠΈΠΏΠ° Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π². Π’ рСкурсивном Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈΠ»ΠΈ нСупорядочСнном Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ лишь структура самого Π΄Π΅Ρ€Π΅Π²Π° Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° порядка ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°. Π”Π΅Ρ€Π΅Π²ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°Π΄Π°Π½ порядок (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ€Π΅Π±Ρ€Ρƒ, Π²Π΅Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΠΊΡƒ, присвоСны Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹Π΅ числа) называСтся Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ с ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Ρ‘Π±Ρ€Π°ΠΌΠΈ ΠΈΠ»ΠΈ упорядочСнным Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ со структурой Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ структурой Π΄Π°Π½Π½Ρ‹Ρ… упорядочСнного Π΄Π΅Ρ€Π΅Π²Π°.

УпорядочСнныС Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространёнными срСди Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… структур. Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· разновидностСй упорядочСнного Π΄Π΅Ρ€Π΅Π²Π°.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π²

БущСствуСт мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… способов прСдставлСния Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π². НаиболСС ΠΎΠ±Ρ‰ΠΈΠΉ способ прСдставлСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΡƒΠ·Π»Ρ‹ ΠΊΠ°ΠΊ записи, располоТСнныС Π² динамичСски выдСляСмой памяти с указатСлями Π½Π° своих ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², ΠΏΡ€Π΅Π΄ΠΊΠΎΠ² (ΠΈΠ»ΠΈ ΠΈ Ρ‚Π΅Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ…), ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ элСмСнты массива, связанныС ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ ΠΈΡ… позициями Π² массивС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, двоичная ΠΊΡƒΡ‡Π°).

Π”Π΅Ρ€Π΅Π²ΡŒΡ ΠΊΠ°ΠΊ Π³Ρ€Π°Ρ„Ρ‹

Π’ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΎΠ² Π΄Π΅Ρ€Π΅Π²ΠΎ β€” связанный ацикличСский Π³Ρ€Π°Ρ„. ΠšΠΎΡ€Π½Π΅Π²ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ β€” это Π³Ρ€Π°Ρ„ с Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π² качСствС ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ. Π’ этом случаС Π»ΡŽΠ±Ρ‹Π΅ Π΄Π²Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, связанныС Ρ€Π΅Π±Ρ€ΠΎΠΌ, Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Β«Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ-ΠΏΠΎΡ‚ΠΎΠΌΠΎΠΊΒ». АцикличСский Π³Ρ€Π°Ρ„ со мноТСством связанных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² ΠΈΠ½ΠΎΠ³Π΄Π° называСтся лСсом.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ…ΠΎΠ΄Π°

ΠŸΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ элСмСнтов Π΄Π΅Ρ€Π΅Π²Π° ΠΏΠΎ связям ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ-ΠΏΡ€Π΅Π΄ΠΊΠ°ΠΌΠΈ ΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ-ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ называСтся ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π°. Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, опСрация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ указатСля ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ·Π»Π°ΠΌ. ΠžΠ±Ρ…ΠΎΠ΄, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π»-ΠΏΡ€Π΅Π΄ΠΎΠΊ просматриваСтся ΠΏΡ€Π΅ΠΆΠ΄Π΅ Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² называСтся прСдупорядочСнным ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ Π² прямом порядкС (pre-order walk), Π° ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ сначала ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€Π΅Π΄ΠΊΠΈ, Ρ‚ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄ называСтся поступорядочСнным ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (post-order walk). БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ симмСтричный ΠΎΠ±Ρ…ΠΎΠ΄, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ посСщаСтся сначала Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ, Π·Π°Ρ‚Π΅ΠΌ ΡƒΠ·Π΅Π», Π·Π°Ρ‚Π΅ΠΌ β€” ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ, ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄ Π² ΡˆΠΈΡ€ΠΈΠ½Ρƒ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ·Π»Ρ‹ ΠΏΠΎΡΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π° ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ (N-ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π° β€” мноТСство ΡƒΠ·Π»ΠΎΠ² с высотой N). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ обходится слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…: Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ. Π§Π°ΡΡ‚ΡŒ 1

Π˜Π½Ρ‚Ρ€ΠΎ

Π­Ρ‚ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ΠΉ я Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ Ρ†ΠΈΠΊΠ» статСй ΠΎΠ± извСстных ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ структурах Π΄Π°Π½Π½Ρ‹Ρ… Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π’ своих ΡΡ‚Π°Ρ‚ΡŒΡΡ… я Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π° сразу Π½Π° Π΄Π²ΡƒΡ… языках: Π½Π° Java ΠΈ Π½Π° Haskell. Благодаря этому ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ стили программирования ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ΡŒ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Ρ‚ΠΎΠ³ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ.

ΠΠ°Ρ‡Π°Ρ‚ΡŒ я Ρ€Π΅ΡˆΠΈΠ» с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² поиска, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это достаточно базовая, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя интСрСсная ΡˆΡ‚ΡƒΠΊΠ°, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ сущСствуСт большоС количСство ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΈ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅.

Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ?

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ поиска ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ мноТСств ΠΈ ассоциативных массивов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, set ΠΈ map Π² с++ ΠΈΠ»ΠΈ TreeSet ΠΈ TreeMap Π² java). Π‘ΠΎΠ»Π΅Π΅ слоТныС примСнСния Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ropes (ΠΏΡ€ΠΎ Π½ΠΈΡ… я расскаТу Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… статСй), Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π³Π΅ΠΎΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ, Π² основном Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… Π½Π° основС Β«ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ прямой».

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ассоциативного массива. Ассоциативный массив β€” ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΉ массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ индСксы (ΠΈΡ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ.

Ну-с, приступим

Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ состоит ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½ ΠΈ связСй ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅, Ρƒ Π΄Π΅Ρ€Π΅Π²Π° Π΅ΡΡ‚ΡŒ выдСлСнная Π²Π΅Ρ€ΡˆΠΈΠ½Π°-ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»Π΅Π²Ρ‹ΠΉ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΉ ΡΡ‹Π½ΠΎΠ²ΡŒΡ. На словах Π·Π²ΡƒΡ‡ΠΈΡ‚ нСсколько слоТно, Π½ΠΎ Ссли Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ всС становится понятным:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π£ этого Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠΎΡ€Π½Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Ρ€ΡˆΠΈΠ½Π° A. Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ D отсутствуСт Π»Π΅Π²Ρ‹ΠΉ сын, Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ B β€” ΠΏΡ€Π°Π²Ρ‹ΠΉ, Π° Ρƒ Π²Π΅Ρ€ΡˆΠΈΠ½ G, H, F ΠΈ I β€” ΠΎΠ±Π°. Π’Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π±Π΅Π· сыновСй принято Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ.

КаТдой Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ X ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ своС Π΄Π΅Ρ€Π΅Π²ΠΎ, состоящСС ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, Π΅Π΅ сыновСй, сыновСй Π΅Π΅ сыновСй, ΠΈ Ρ‚.Π΄. Π’Π°ΠΊΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ с ΠΊΠΎΡ€Π½Π΅ΠΌ X. Π›Π΅Π²Ρ‹ΠΌ ΠΈ ΠΏΡ€Π°Π²Ρ‹ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ X Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ с корнями соотвСтствСнно Π² Π»Π΅Π²ΠΎΠΌ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΌ ΡΡ‹Π½ΠΎΠ²ΡŒΡΡ… X. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ пустыми, Ссли Ρƒ X Π½Π΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ сына.

Π”Π°Π½Π½Ρ‹Π΅ Π² Π΄Π΅Ρ€Π΅Π²Π΅ хранятся Π² Π΅Π³ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Π°Ρ…. Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π΄Π΅Ρ€Π΅Π²Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ структурой, хранящСй Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π΄Π²Π΅ ссылки Π½Π° Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ сына. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ null ΠΈΠ»ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ конструктором Leaf:

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΌΡ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌ ΠΎΡ‚ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ( Ord a Π² haskell ΠΈ T1 implements Comparable Π² java). ВсС это Π½Π΅ спроста β€” для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Ρ€Π΅Π²ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅ΠΌ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ.

КакиС ΠΆΠ΅ это ΠΏΡ€Π°Π²ΠΈΠ»Π°? ВсС просто: Ссли Π² Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ X хранится ΠΊΠ»ΡŽΡ‡ x, Ρ‚ΠΎ Π² Π»Π΅Π²ΠΎΠΌ (ΠΏΡ€Π°Π²ΠΎΠΌ) ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ»ΡŽΡ‡ΠΈ мСньшиС (соотвСтствСнно большиС) Ρ‡Π΅ΠΌ x. ΠŸΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅ΠΌ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π§Ρ‚ΠΎ ΠΆΠ΅ Π½Π°ΠΌ Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ упорядочСваниС? Π’ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ»ΡŽΡ‡ x Π² Π΄Π΅Ρ€Π΅Π²Π΅! ΠŸΡ€ΠΎΡΡ‚ΠΎ сравним x со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΊΠΎΡ€Π½Π΅. Если ΠΎΠ½ΠΈ Ρ€Π°Π²Π½Ρ‹, Ρ‚ΠΎ ΠΌΡ‹ нашли Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅. Если ΠΆΠ΅ x мСньшС (большС), Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π»Π΅Π²ΠΎΠΌ (соотвСтствСнно ΠΏΡ€Π°Π²ΠΎΠΌ) ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅. ΠŸΡƒΡΡ‚ΡŒ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ Π² Π΄Π΅Ρ€Π΅Π²Π΅ число 17:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Ѐункция, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ:

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ добавлСния Π½ΠΎΠ²ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡/Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (a,b). Для этого Π±ΡƒΠ΄Π΅ΠΌ ΡΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠΎ Π΄Π΅Ρ€Π΅Π²Ρƒ ΠΊΠ°ΠΊ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΌ, Π»ΠΈΠ±ΠΎ Π½Π΅ Π΄ΠΎΠΉΠ΄Π΅ΠΌ Π΄ΠΎ ΠΎΡ‚ΡΡƒΡ‚ΡΠ²ΡƒΡŽΡ‰Π΅Π³ΠΎ сына. Если ΠΌΡ‹ нашли Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠ»ΡŽΡ‡Π΅ΠΌ, Ρ‚ΠΎ просто мСняСм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎ случаС Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² это мСсто слСдуСт Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ порядок. Рассмотрим вставку ΠΊΠ»ΡŽΡ‡Π° 42 Π² Π΄Π΅Ρ€Π΅Π²ΠΎ Π½Π° ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ рисункС:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ЛиричСскоС отступлСниС ΠΎ ΠΏΠ»ΡŽΡΠ°Ρ… ΠΈ минусах Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°

Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π° ΠΎΠ±ΠΎΠΈΡ… языках, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈ ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ: Ссли Π½Π° java ΠΌΡ‹ просто ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ссылки Π² ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π²Π΅Ρ€ΡˆΠΈΠ½Π°Ρ…, Ρ‚ΠΎ вСрсия Π½Π° haskell создаСт Π½ΠΎΠ²Ρ‹Π΅ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ вдоль всСго ΠΏΡƒΡ‚ΠΈ, ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ рСкурсиСй. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² чисто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языках нСльзя Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠ΅ присваивания. Ясно, Ρ‡Ρ‚ΠΎ это ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅ΠΌΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ρƒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ стороны: отсутствиС ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов сильно ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ± этом ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² практичСски любом ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠ΅ ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π’ этой ΠΆΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я Ρ…ΠΎΡ‡Ρƒ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ слСдствиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°: Π΄Π°ΠΆΠ΅ послС добавлСния Π² Π΄Π΅Ρ€Π΅Π²ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта старая вСрсия останСтся доступной! Π—Π° счСт этого эффСкта Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ropes, Π² Ρ‚ΠΎΠΌ числС ΠΈ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΈΠΌΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… языках, позволяя Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ строки с асимптотичСски Π±ΠΎΠ»Π΅Π΅ быстрыми опСрациями, Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅. ΠŸΡ€ΠΎ ropes я расскаТу Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… статСй.

ВСрнСмся ΠΊ нашим Π±Π°Ρ€Π°Π½Π°ΠΌ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ ΠΊ самой слоТной ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ ΠΊΠ»ΡŽΡ‡Π° x ΠΈΠ· Π΄Π΅Ρ€Π΅Π²Π°. Для Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π½Π°ΠΉΠ΄Π΅ΠΌ Π½Π°ΡˆΡƒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ Π² Π΄Π΅Ρ€Π΅Π²Π΅. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄Π²Π° случая. Π‘Π»ΡƒΡ‡Π°ΠΉ 1 (удаляСм число 5):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ удаляСмой Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π½Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ сына. Π’ΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π΅Π΅ ΠΈ вмСсто Π½Π΅Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΡΡ‚ΡŒ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Если ΠΆΠ΅ ΠΏΡ€Π°Π²Ρ‹ΠΉ сын Π΅ΡΡ‚ΡŒ, Π½Π°Π»ΠΈΡ†ΠΎ случай 2 (удаляСм снова Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ 5, Π½ΠΎ ΠΈΠ· Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π’ΡƒΡ‚ Ρ‚Π°ΠΊ просто Π½Π΅ получится β€” Ρƒ Π»Π΅Π²ΠΎΠ³ΠΎ сына ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΆΠ΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π°Π²Ρ‹ΠΉ сын. ΠŸΠΎΡΡ‚ΡƒΠΏΠΈΠΌ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ: Π½Π°ΠΉΠ΄Π΅ΠΌ Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ. Ясно, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Ссли Π½Π°Ρ‡Π°Ρ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΎΠΌ сынС ΠΈ ΠΈΠ΄Ρ‚ΠΈ Π΄ΠΎ ΡƒΠΏΠΎΡ€Π° Π²Π»Π΅Π²ΠΎ. Π’.ΠΊ Ρƒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Π½Π΅Ρ‚ Π»Π΅Π²ΠΎΠ³ΠΎ сына, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ со случаСм 1 ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ вмСсто ΡƒΠ΄Π°Π»Π΅Π΅ΠΌΠΎΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π² ΠΏΡ€Π°Π²ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²Π΅, свойство упорядочСнности Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡΡ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

На дСсСрт, ΠΏΠ°Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я использовал для тСстирования:

Π§Π΅ΠΌ ΠΆΠ΅ всС это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ?

Π£ читатСля Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π·Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ слоТности, Ссли ΠΌΠΎΠΆΠ½ΠΎ просто Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ список ΠΏΠ°Ρ€ [(ΠΊΠ»ΡŽΡ‡, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)]. ΠžΡ‚Π²Π΅Ρ‚ прост β€” ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ быстрСС. ΠŸΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ списком всС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ O(n) дСйствий, Π³Π΄Π΅ n β€” Ρ€Π°Π·ΠΌΠ΅Ρ€ структуры. (Π—Π°ΠΏΠΈΡΡŒ O(f(n)) Π³Ρ€ΡƒΠ±ΠΎ говоря ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ f(n)Β», Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ описаниС ΠΈ подробности ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΡƒΡ‚). ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π·Π° O(h), Π³Π΄Π΅ h β€” максимальная Π³Π»ΡƒΠ±ΠΈΠ½Π° Π΄Π΅Ρ€Π΅Π²Π° (Π³Π»ΡƒΠ±ΠΈΠ½Π° β€” расстояниС ΠΎΡ‚ корня Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹). Π’ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ случаС, ΠΊΠΎΠ³Π΄Π° Π³Π»ΡƒΠ±ΠΈΠ½Π° всСх Π»ΠΈΡΡ‚ΡŒΠ΅Π² ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Π°, Π² Π΄Π΅Ρ€Π΅Π²Π΅ Π±ΡƒΠ΄Π΅Ρ‚ n=2^h Π²Π΅Ρ€ΡˆΠΈΠ½. Π—Π½Π°Ρ‡ΠΈΡ‚, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ…, Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΊ ΠΎΠΏΡ‚ΠΈΠΌΡƒΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ O(log(n)). К соТалСнию, Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ выродится ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊ Ρƒ списка, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ‚Π°ΠΊΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅ (получится, Ссли Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ числа 1..n ΠΏΠΎ порядку):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ способы Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ Π³Π»ΡƒΠ±ΠΈΠ½Π° Π΄Π΅Ρ€Π΅Π²Π° ΡΠΎΡ…Ρ€Π°Π½ΡΠ»Π°ΡΡŒ ΠΏΡ€ΠΈ любой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ сбалансированными. К Π½ΠΈΠΌ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ относятся красно-Ρ‡Π΅Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ, AVL-Π΄Π΅Ρ€Π΅Π²ΡŒΡ, splay-Π΄Π΅Ρ€Π΅Π²ΡŒΡ, ΠΈ Ρ‚.Π΄.

Анонс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сСрий

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я сдСлаю нСбольшой ΠΎΠ±Π·ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сбалансированных Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², ΠΈΡ… ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ… я расскаТу ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ…) Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ. ПослС этого я расскаТу ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ropes ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΡ… ΠΈ примСнСниях сбалансированных Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π².

ΠžΡΡ‚Π°Π²Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π° связи!

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

Π˜ΡΡ…ΠΎΠ΄Π½ΠΈΠΊΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ:

Π’Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ ΡΠΎΠ²Π΅Ρ‚ΡƒΡŽ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ½ΠΈΠ³Ρƒ ΠšΠΎΡ€ΠΌΠ΅Π½ Π’., ЛСйзСрсон Π§., РивСст Π .: «Алгоритмы: построСниС ΠΈ Π°Π½Π°Π»ΠΈΠ·Β», которая являСтся прСкрасным ΡƒΡ‡Π΅Π±Π½ΠΈΠΊΠΎΠΌ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ ΠΈ структурам Π΄Π°Π½Π½Ρ‹Ρ…

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

Π”Π΅Ρ€Π΅Π²ΠΎ ΠΊΠ°ΠΊ структура Π΄Π°Π½Π½Ρ‹Ρ…

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠšΠ°ΠΊΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΠΎ? Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ расскаТСм ΠΎ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°, рассмотрим основныС опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт Π·Π½Π°Ρ‚ΡŒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Π΅Ρ€Π΅Π²ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΏΠΎΠΉΠ»Π΅Ρ€: Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, для сортировки Π΄Π°Π½Π½Ρ‹Ρ…, для провСдСния вычислСний, для кодирования ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях. Но Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±ΠΎ всСм ΠΏΠΎ порядку.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹

Π”Π΅Ρ€Π΅Π²ΠΎ β€” это, ΠΏΠΎ сути, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· частных случаСв Π³Ρ€Π°Ρ„Π°. ДрСвовидная модСль ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ вСсьма эффСктивна Π² случаС прСдставлСния динамичСских Π΄Π°Π½Π½Ρ‹Ρ…, особСнно Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° стоит Ρ†Π΅Π»ΡŒ быстрого поиска ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² Ρ‚Π΅Ρ… ΠΆΠ΅ Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ. Π•Ρ‰Π΅ Π΄Ρ€Π΅Π²ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ структуру Π΄Π°Π½Π½Ρ‹Ρ…, которая прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ элСмСнтов, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ этими элСмСнтами, Ρ‡Ρ‚ΠΎ вмСстС ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт β€” это Π²Π΅Ρ€ΡˆΠΈΠ½Π° ΠΈΠ»ΠΈ ΡƒΠ·Π΅Π» Π΄Π΅Ρ€Π΅Π²Π°. Π£Π·Π»Ρ‹, соСдинСнныС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄ΡƒΠ³Π°ΠΌΠΈ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ вСтвями. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΠ·Π΅Π» β€” это ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π΅Ρ€Π΅Π²Π° (ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π»). Π›ΠΈΡΡ‚ΡŒΡ β€” это ΡƒΠ·Π»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ 1 Π²Π΅Ρ‚Π²ΡŒ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ.

ΠžΠ±Ρ‰ΡƒΡŽ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ Π½ΠΈΠΆΠ΅:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

КакиС свойства Π΅ΡΡ‚ΡŒ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Ρ€Π΅Π²Π°:

β€” сущСствуСт ΡƒΠ·Π΅Π», Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈ ΠΎΠ΄Π½Π° Π²Π΅Ρ‚Π²ΡŒ;

β€” Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π», ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, Π²Ρ…ΠΎΠ΄ΠΈΡ‚ 1 Π²Π΅Ρ‚Π²ΡŒ.

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚, изобраТая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. ΠžΡ‡Π΅Π½ΡŒ популярны, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, гСнСалогичСскиС Π΄Ρ€Π΅Π²Π° β€” ΠΎΠ½ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ извСстны. ВсС ΡƒΠ·Π»Ρ‹ с вСтвями, исходящими ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠ°ΠΌΠΈ, Π° сама Π²Π΅Ρ€ΡˆΠΈΠ½Π° называСтся ΠΏΡ€Π΅Π΄ΠΊΠΎΠΌ (Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΡƒΠ·Π»ΠΎΠΌ). ΠšΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΡƒΠ·Π΅Π» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΊΠΎΠ², Π° Π»ΠΈΡΡ‚ΡŒΡ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ².

Π’Π°ΠΊΠΆΠ΅ Ρƒ Π΄Π΅Ρ€Π΅Π²Π° Π΅ΡΡ‚ΡŒ высота (Π³Π»ΡƒΠ±ΠΈΠ½Π°). Она опрСдСляСтся числом ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ ΡƒΠ·Π»Ρ‹ Π΄Π΅Ρ€Π΅Π²Π°. Π“Π»ΡƒΠ±ΠΈΠ½Π° пустого Π΄Ρ€Π΅Π²Π° равняСтся Π½ΡƒΠ»ΡŽ, Π° Ссли Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ Π΄Π΅Ρ€Π΅Π²Π΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ корня, Ρ‚ΠΎΠ³Π΄Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π½Π° Π½ΡƒΠ»Π΅Π²ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ лишь ΠΎΠ΄Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π° – ΠΊΠΎΡ€Π΅Π½ΡŒ, Π½Π° 1-ΠΌ – ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ корня, Π½Π° 2-ΠΌ – ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ² корня ΠΈ Ρ‚. Π΄.

НиТС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ графичСский Π²Ρ‹Π²ΠΎΠ΄ Π΄Ρ€Π΅Π²Π° с 4-мя уровнями (Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ, Ρ€Π°Π²Π½ΡƒΡŽ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ):

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, β€” это ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ. ΠŸΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ‡Π°ΡΡ‚ΡŒ Π΄Ρ€Π΅Π²ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ структуры, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°.

ИдСм дальшС. Π”Ρ€Π΅Π²ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ упорядочСнным β€” Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Π²Π΅Ρ‚Π²ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ исходят ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π°, упорядочСны ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ.

Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ Π² Π΄Ρ€Π΅Π²Π΅ β€” это число Π²Π΅Ρ‚Π²Π΅ΠΉ (Π΄ΡƒΠ³), выходящих ΠΈΠ· этой Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. Π‘Ρ‚Π΅ΠΏΠ΅Π½ΡŒ равняСтся максимальной стСпСни Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, которая Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ. Π’ этом случаС Π»ΠΈΡΡ‚ΡŒΡΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ·Π»Ρ‹, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ Π½ΡƒΠ»Π΅Π²ΡƒΡŽ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ. По Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ стСпСни Π΄Π΅Ρ€Π΅Π²ΡŒΡ Π±Ρ‹Π²Π°ΡŽΡ‚:

β€” Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ (ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π½Π΅ большС Π΄Π²ΡƒΡ…);

β€” ΡΠΈΠ»ΡŒΠ½ΠΎΠ²Π΅Ρ‚Π²ΡΡ‰ΠΈΠ΅ΡΡ (ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ большС Π΄Π²ΡƒΡ…).

Π”Π΅Ρ€Π΅Π²ΡŒΡ β€” это рСкурсивныС структуры, вСдь ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ‚ΠΎΠΆΠ΅ являСтся Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Ρ‚Π°ΠΊΠΎΠΉ рСкурсивной структуры являСтся ΠΈΠ»ΠΈ пустой структурой, ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ связано ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ количСство ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π².

Когда ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ рСкурсивных структурах, Ρ‚ΠΎ дСйствия с Π½ΠΈΠΌΠΈ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ посрСдством рСкурсивных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ².

ΠžΠ±Ρ…ΠΎΠ΄ Π΄Ρ€Π΅Π²Π°

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ всСми Π²Π΅Ρ€ΡˆΠΈΠ½Π°ΠΌΠΈ, Π½Π°Π΄ΠΎ всС эти ΡƒΠ·Π»Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Π”Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ±Ρ…ΠΎΠ΄ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π°. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄ прСдставляСт собой ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ·Π»ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» встрСчаСтся лишь ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π’ процСссС ΠΎΠ±Ρ…ΠΎΠ΄Π° всС ΡƒΠ·Π»Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ΅Ρ‰Π°Ρ‚ΡŒΡΡ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ, Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС. Π•ΡΡ‚ΡŒ ряд способов ΠΎΠ±Ρ…ΠΎΠ΄Π°, Π²ΠΎΡ‚ Ρ‚Ρ€ΠΈ основныС:

β€” прямой (прСфиксный, preorder);

β€” симмСтричный (инфиксный, inorder);

β€” ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ (постфиксный, postorder).

БущСствуСт ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…: Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ (Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅), красно-Ρ‡Π΅Ρ€Π½Ρ‹Π΅, Π’-Π΄Π΅Ρ€Π΅Π²ΡŒΡ, ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅, ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΡ€. ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ….

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ (Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅) Π΄Π΅Ρ€Π΅Π²ΡŒΡ

Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ…. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ Π΄Ρ€Π΅Π²ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ…, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ большоС 2-Ρ… ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ². Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ состоит ΠΈΠ· элСмСнтов, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· элСмСнтов содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ большС 2-Ρ… ссылок Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΡŒΡ. На ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт Π΄Ρ€Π΅Π²Π° Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ссылка.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Ρ€Π΅Π²ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π£ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Ρ€Π΅Π²Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π» β€” это структура, которая состоит ΠΈΠ· 4-Ρ… Π²ΠΈΠ΄ΠΎΠ² ΠΏΠΎΠ»Π΅ΠΉ. КакиС это поля:

β€” ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ (ΠΊΠ»ΡŽΡ‡ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹);

β€” слуТСбноС (Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ информация, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ вовсС);

β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΡ€Π°Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ;

β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π‘Π°ΠΌΡ‹ΠΉ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²ΠΈΠ΄ Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ³ΠΎ Π΄Ρ€Π΅Π²Π° β€” Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска.

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Π΄Ρ€Π΅Π²ΠΎ Π² контСкстС программирования?

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ»Π³ΠΎ Ρ€Π°ΡΡΡƒΠΆΠ΄Π°Ρ‚ΡŒ ΠΎ матСматичСском ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Ρ€Π΅Π²Π°, Π½ΠΎ это вряд Π»ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π³ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΈΠ· Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΡƒΡ‚ Π²Π°ΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π΅Π²ΠΎ являСтся способом ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„ΠΎΡ€ΠΌΠ΅ иСрархичСской структуры.

Π’ ΠΊΠ°ΠΊΠΈΡ… случаях Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Π΅ структуры ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ:

β€” поиск Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ построСнных Π΄Π΅Ρ€Π΅Π²ΡŒΡΡ…);

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

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

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