ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ²ΡΠ·Π½Ρ‹ΠΉ список ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° число элСмСнтов ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»ΠΎ (< 50), мСняСтся ΠΈ, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‡Π°ΡΡ‚ΠΎΡ‚Π΅ обращСния ΠΊ Π½ΠΈΠΌ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΠ΅Π½ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°Ρ… языков программирования. КаТдоС объявлСниС добавляСт Π½ΠΎΠ²ΠΎΠ΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ удаляСтся ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π΅Π³ΠΎ области видимости. ИспользованиС простых связных списков умСстно… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘Ρ‚Π΅ΠΊ

Π‘Ρ‚Π΅ΠΊΠΎΠΌ Π½Π°Π·ΠΎΠ²Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ°, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ элСмСнты, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов, Ρ‚Π°ΠΊ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старых производится с ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½Ρ†Π° этой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ стСка. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ названия стСка — ΠΌΠ°Π³Π°Π·ΠΈΠ½, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ LIFO (Last — In — First — Out — «ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΏΡ€ΠΈΡˆΠ΅Π» — ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ»). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ стСка: Π²ΠΈΠ½Ρ‚ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ°Π³Π°Π·ΠΈΠ½, Ρ‚ΡƒΠΏΠΈΠΊΠΎΠ²Ρ‹ΠΉ ΠΆΠ΅Π»Π΅Π·Π½ΠΎΠ΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅Π·Π΄ для сортировки Π²Π°Π³ΠΎΠ½ΠΎΠ².

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта удаляСтся всСгда Ρ‚ΠΎΡ‚ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» послСдним Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΡ‚Π΅ΠΊ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, элСмСнты ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядку добавлСния элСмСнтов.

Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ стСки. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС количСство элСмСнтов стСка ограничиваСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ числом. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ элСмСнт Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ стСк, содСрТащий максимальноС количСство элСмСнтов, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ситуация. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠΉ ситуации. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Ρ€Π°Π·ΠΌΠ΅Ρ€ стСка ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ΠΌ доступной памяти.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ стСком — Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта (английскоС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ push — Π·Π°Ρ‚Π°Π»ΠΊΠΈΠ²Π°Ρ‚ΡŒ) ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° (Π°Π½Π³Π». pop — Π²Ρ‹ΡΠΊΠ°ΠΊΠΈΠ²Π°Ρ‚ΡŒ).

ΠŸΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  • Β· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ числа элСмСнтов Π² ΡΡ‚Π΅ΠΊΠ΅;
  • Β· очистка стСка;
  • Β· Π½Π΅Ρ€Π°Π·Ρ€ΡƒΡˆΠ°ΡŽΡ‰Π΅Π΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ элСмСнта ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΠΊΠ°ΠΊ комбинация основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:

pop (); push ().

НСкоторыС Π°Π²Ρ‚ΠΎΡ€Ρ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ / ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСмСнтов для сСрСдины стСка, ΠΎΠ΄Π½Π°ΠΊΠΎ структура, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π΅ ΡΠΎΠΎΡ‚вСтствуСт стСку ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ.

Для наглядности рассмотрим нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСмСнтов Π² ΡΡ‚Π΅ΠΊ ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСмСнтов ΠΈΠ· ΡΡ‚Π΅ΠΊΠ°. На Ρ€ΠΈΡ. 1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ состояния стСка:

  • Β· Π°) пустого;
  • Β· Π± — Π³) послС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π½Π΅Π³ΠΎ элСмСнтов с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ 'A', 'B', 'C';
  • Β· Π΄, Π΅) послС ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ удалСния ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° элСмСнтов 'C' ΠΈ 'B';
  • Β· ΠΆ) послС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΡΡ‚Π΅ΠΊ элСмСнта 'D'.
ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ€ΠΈΡ. 1, стСк ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π²ΠΈΠ΄Π΅ стопки ΠΊΠ½ΠΈΠ³ (элСмСнтов), Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ Π½Π° ΡΡ‚ΠΎΠ»Π΅. ΠŸΡ€ΠΈΡΠ²ΠΎΠΈΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ A, B, C, D. Π’ΠΎΠ³Π΄Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΠ³Π΄Π° Π½Π° ΡΡ‚ΠΎΠ»Π΅ ΠΊΠ½ΠΈΠ³ Π½Π΅Ρ‚, ΠΏΡ€ΠΎ стСк Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡƒΡΡ‚, Ρ‚. Π΅. Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта. Если ΠΆΠ΅ ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»Π°ΡΡ‚ΡŒ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ΄Π½Ρƒ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ стопку ΠΊΠ½ΠΈΠ³ (допустим, ΠΈΠ· n ΠΊΠ½ΠΈΠ³), ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ стСк, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится n ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π²Π΅Ρ€ΡˆΠΈΠ½ΠΎΠΉ Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ элСмСнт n+1. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ· ΡΡ‚Π΅ΠΊΠ° осущСствляСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‚. Π΅. удаляСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ элСмСнту, начиная с Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹, ΠΈΠ»ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΈΠ³Π΅ ΠΈΠ· ΡΡ‚ΠΎΠΏΠΊΠΈ.

ΠŸΡ€ΠΈ прСдставлСнии стСка Π² ΡΡ‚атичСской памяти для стСка выдСляСтся ΠΏΠ°ΠΌΡΡ‚ΡŒ, ΠΊΠ°ΠΊ для Π²Π΅ΠΊΡ‚ΠΎΡ€Π°. Π’ Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π΅ этого Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… для Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка — адрСс Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ свободный элСмСнт стСка, Π»ΠΈΠ±ΠΎ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ записанный Π² ΡΡ‚Π΅ΠΊ элСмСнт. (ВсС Ρ€Π°Π²Π½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΡ‚ΠΈΡ… Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Π²Π°ΠΆΠ½ΠΎ впослСдствии строго ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ стСка.) Π’ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ всСгда ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка адрСсуСт ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ свободный элСмСнт ΠΈ ΡΡ‚Π΅ΠΊ растСт Π² ΡΡ‚ΠΎΡ€ΠΎΠ½Ρƒ увСличСния адрСсов.

ΠŸΡ€ΠΈ занСсСнии элСмСнта Π² ΡΡ‚Π΅ΠΊ элСмСнт записываСтся Π½Π° ΠΌΠ΅ΡΡ‚ΠΎ, опрСдСляСмоС ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ стСка, Π·Π°Ρ‚Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ модифицируСтся Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ свободный элСмСнт (Ссли ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ записанный элСмСнт, Ρ‚ΠΎ ΡΠ½Π°Ρ‡Π°Π»Π° модифицируСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ производится запись элСмСнта). ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ указатСля состоит Π² ΠΏΡ€ΠΈΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡƒ ΠΈΠ»ΠΈ Π² Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ наш стСк растСт Π² ΡΡ‚ΠΎΡ€ΠΎΠ½Ρƒ увСличСния адрСсов).

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ элСмСнта состоит Π² ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ указатСля стСка (Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ) ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ значСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка. ПослС Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ слот, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ размСщался Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ элСмСнт, считаСтся свободным.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ очистки стСка сводится ΠΊ Π·Π°ΠΏΠΈΡΠΈ Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ стСка Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния — адрСса Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ области памяти.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° стСка сводится ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡŽ разности ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ: указатСля стСка ΠΈ Π°Π΄Ρ€Π΅ΡΠ° Π½Π°Ρ‡Π°Π»Π° области.

Бвязный список

ДинамичСскиС структуры Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ нСпостоянством ΠΈ Π½Π΅ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° (числа элСмСнтов) структуры Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, отсутствиСм физичСской смСТности элСмСнтов структуры Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ. Часто динамичСскиС структуры ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ связных списков.

Бвязный список — это Π½Π°Π±ΠΎΡ€ элСмСнтов, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΡƒΠ·Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ссылку Π½Π° ΡƒΠ·Π΅Π».

Π£Π·Π»Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ссылками Π½Π° ΡƒΠ·Π»Ρ‹, поэтому связныС списки ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ самоссылочными структурами. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, хотя ΡƒΠ·Π΅Π» ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ссылаСтся Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΡƒΠ·Π΅Π», Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ссылка Π½Π° ΡΠ°ΠΌΠΎΠ³ΠΎ сСбя, поэтому связныС списки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой цикличСскиС структуры.

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

  • — Π­Ρ‚ΠΎ пустая (null) ссылка, Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡƒΠ·Π΅Π».
  • — Π‘сылка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» (dummy node), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ элСмСнтов.
  • — Π‘сылка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΠ·Π΅Π», Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ список цикличСским.

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

Бписок, ΠΎΡ‚Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ сосСдства ΠΌΠ΅ΠΆΠ΄Ρƒ элСмСнтами, называСтся Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ. Если ограничСния Π½Π° Π΄Π»ΠΈΠ½Ρƒ списка Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ся, Ρ‚ΠΎ ΡΠΏΠΈΡΠΎΠΊ прСдставляСтся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π² Π²ΠΈΠ΄Π΅ связной структуры. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ связныС списки ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΌΠΈ динамичСскими структурами Π΄Π°Π½Π½Ρ‹Ρ….

Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ списки

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ элСмСнтов — Π²Ρ‹ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΏΡ€ΠΎΡΡ‚ΠΎΠΉ список (list) ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Ибо Π² ΡΡ‚ΠΎΠΌ случаС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π½ΡƒΠΆΠ΅Π½ СдинствСнный ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ.

ΠŸΡƒΡΡ‚ΡŒ Ρ‚ΠΈΠΏ NodeDesc (desc ΠΎΡ‚ descriptor) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. КаТдая пСрСмСнная Ρ‚ΠΈΠΏΠ° NodeDesc содСрТит Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ»ΡŽΡ‡ key, ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт next ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Для дальнСйшСго Π½Π°ΠΌ понадобятся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ key ΠΈ next.

struct NodeDesc {.

int Info;

int key;

NodeDesc * next;

};

NodeDesc * p;

NodeDesc * q;

p, q — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ На Ρ€ΠΈΡ. 1 ΠΏΠΎΠΊΠ°Π·Π°Π½ список ΡƒΠ·Π»ΠΎΠ², ΠΏΡ€ΠΈΡ‡Ρ‘ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт хранится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€. ВСроятно, ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ опСрация со ΡΠΏΠΈΡΠΊΠΎΠΌ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ — это вставка элСмСнта Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ списка. Π‘Π½Π°Ρ‡Π°Π»Π° размСщаСтся элСмСнт Ρ‚ΠΈΠΏΠ° NodeDesc, ΠΏΡ€ΠΈ этом ссылка (ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ) Π½Π° Π½Π΅Π³ΠΎ записываСтся Π²ΠΎ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, скаТСм q. Π—Π°Ρ‚Π΅ΠΌ простыС присваивания ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ порядок этих Ρ‚Ρ€Π΅Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠ΅Π½ΡΡ‚ΡŒ нСльзя.

q=new NodeDesc;

qnext = Ρ€; Ρ€ = q;

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ вставки элСмСнта Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ списка сразу подсказываСт, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠΉ список ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ: начиная с ΠΏΡƒΡΡ‚ΠΎΠ³ΠΎ списка, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты. ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания списка ΠΏΠΎΠΊΠ°Π·Π°Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅; здСсь n — число элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ Π² ΡΠΏΠΈΡΠΎΠΊ:

Ρ€ = null; (*Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с ΠΏΡƒΡΡ‚ΠΎΠ³ΠΎ списка*).

while (n > 0).

{.

q=new NodeDesc;

qnext = Ρ€; Ρ€ = q;

qkey = n;

n -;

}.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ способ создания списка. Однако здСсь получаСтся, Ρ‡Ρ‚ΠΎ элСмСнты стоят Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΠΎΡ€ΡΠ΄ΠΊΠΎΠΌ ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… это Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ Π² ΠΊΠΎΠ½Ρ†Π΅, Π° Π½Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅ списка. Π₯отя ΠΊΠΎΠ½Π΅Ρ† списка Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ простым просмотром, Ρ‚Π°ΠΊΠΎΠΉ Π½Π°ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, скаТСм q, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ элСмСнт.

Π‘Ρ€Π΅Π΄ΠΈ элСмСнтарных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ-вставка ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов (частичноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ списка), Π° Ρ‚Π°ΠΊΠΆΠ΅, разумССтся, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΠΎ ΡΠΏΠΈΡΠΊΡƒ. ΠœΡ‹ ΡΠ½Π°Ρ‡Π°Π»Π° рассмотрим вставку (insertion) Π² ΡΠΏΠΈΡΠΎΠΊ.

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ элСмСнт, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ q, Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² ΡΠΏΠΈΡΠΎΠΊ послС элСмСнта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ€ (рис. 2).

qnext = pnext; pnext = q;

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Если Π½ΡƒΠΆΠ½Π° вставка ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ элСмСнтом pp, Π° Π½Π΅ ΠΏΠΎΡΠ»Π΅ Π½Π΅Π³ΠΎ, Ρ‚ΠΎ, казалось Π±Ρ‹, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅ ссылок Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΎΡ‚ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΊ Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ°ΠΌ. Однако здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Ρ€ΡƒΡ‡ΠΈΡ‚ΡŒ простой ΠΏΡ€ΠΈΠ΅ΠΌ.

НСобходимо Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ послС pp, Π° ΠΏΠΎΡ‚ΠΎΠΌ произвСсти ΠΎΠ±ΠΌΠ΅Π½ значСниями ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠ²Ρ‹ΠΌ элСмСнтом ΠΈ pp.

q=new NodeDesc;

qq=pp;

pkey=k;

pnext=q;

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° (list deletion). НСтрудно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт, стоящий сразу Π·Π° pp. Π­Ρ‚Π° опСрация ΠΏΠΎΠΊΠ°Π·Π°Π½Π° здСсь вмСстС с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ вставкой ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ элСмСнта Π² Π½Π°Ρ‡Π°Π»ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ списка (ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ q). Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ мСсто цикличСский ΠΎΠ±ΠΌΠ΅Π½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‚Ρ€Ρ‘Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ.

r = pnext; pnext = rnext; rnext = q; q = r;

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ самого элСмСнта, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ссылка (Π° Π½Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ), Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ здСсь Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ‚Π° ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‡Ρ‚ΠΎ ΠΈ ΡΠΎ Π²ΡΡ‚Π°Π²ΠΊΠΎΠΉ: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ просто Ρ‚Π°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π°Π·Π°Π΄ ΠΎΡ‚ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΊ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ.

Но ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ элСмСнта послС копирования Π΅Π³ΠΎ значСния Π²ΠΏΠ΅Ρ€Ρ‘Π΄ — довольно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π·Π° pp ΡΡ‚ΠΎΠΈΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ элСмСнт, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ pp Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся послСдним элСмСнтом Π² ΡΠΏΠΈΡΠΊΠ΅. Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° ΡƒΠ΄Π°Π»ΡΠ΅ΠΌΡ‹ΠΉ элСмСнт.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΠΌΡΡ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄Π° ΠΏΠΎ ΡΠΏΠΈΡΠΊΡƒ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта списка, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ элСмСнт pp, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π  (Ρ…). Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

WHILE (список, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ссылаСтся Ρ€, Π½Π΅ ΠΏΡƒΡΡ‚)

{

Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π ;

ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту;

}

Из ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° while ΠΈ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρ‹ связСй слСдуСт, Ρ‡Ρ‚ΠΎ Π  ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся ΠΊΠΎ Π²ΡΠ΅ΠΌ элСмСнтам списка ΠΈ Π½ΠΈ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

ΠžΡ‡Π΅Π½ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ со ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ — поиск Π² ΡΠΏΠΈΡΠΊΠ΅ элСмСнта с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², поиск здСсь Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ чисто ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Поиск прСкращаСтся, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° элСмСнт Π½Π°ΠΉΠ΄Π΅Π½, Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ³Π΄Π° достигнут ΠΊΠΎΠ½Π΅Ρ† списка.

УпорядочСнныС списки ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска Π² Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΌ спискС ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΏΠΎΠΈΡΠΊ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. На ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ — это Π² Ρ‚очности Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΉ список, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ способ связи с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ элСмСнтом скрыт. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ основныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ вставку Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов (Ρ€Π°Π·Π²Π΅ Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ†) ΠΈΠ»ΠΈ удалСния (ΠΊΡ€ΠΎΠΌΠ΅ удалСния всСх элСмСнтов), Π²Ρ‹Π±ΠΎΡ€ прСдставлСния отдаСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π½Π° ΠΎΡ‚ΠΊΡƒΠΏ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ, располагая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π² Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… областях памяти. Π›ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅ списки с ΡΠ²Π½Ρ‹ΠΌΠΈ указатСлями Π΄Π°ΡŽΡ‚ большС гибкости, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π² Ρ‚Π°ΠΊΠΎΠΉ гибкости Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ.

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

Поиск Π² ΡƒΠΏΠΎΡ€ΡΠ΄ΠΎΡ‡Π΅Π½Π½ΠΎΠΌ спискС Π΄Π°Ρ‘Ρ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ситуации, ΠΊΠΎΠ³Π΄Π° Π½ΠΎΠ²Ρ‹ΠΉ элСмСнт Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ элСмСнтом, Ρ‡Π΅ΠΉ ΠΊΠ»ΡŽΡ‡ оказался слишком большим. Однако ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ здСсь Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ отличаСтся ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π½Π΅Π΅. ВмСсто копирования Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ вдоль списка проходят Π΄Π²Π° указатСля: w2 отстаСт Π½Π° ΡˆΠ°Π³ ΠΎΡ‚ w1 ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ мСсто вставки, ΠΊΠΎΠ³Π΄Π° w1 ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ слишком большой ΠΊΠ»ΡŽΡ‡. ΠžΠ±Ρ‰ΠΈΠΉ шаг вставки ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° Ρ€ΠΈΡ.

ВСорСтичСскоС описаниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ… с Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΡΠ²ΡΠ·Π½Ρ‹ΠΉ список ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° число элСмСнтов ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°Π»ΠΎ (< 50), мСняСтся ΠΈ, Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‡Π°ΡΡ‚ΠΎΡ‚Π΅ обращСния ΠΊ Π½ΠΈΠΌ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ — Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠΌΠ΅Π½ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Π°Ρ… языков программирования. КаТдоС объявлСниС добавляСт Π½ΠΎΠ²ΠΎΠ΅ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ удаляСтся ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° послС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π΅Π³ΠΎ области видимости. ИспользованиС простых связных списков умСстно Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ… с ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. Но Π΄Π°ΠΆΠ΅ Π² ΡΡ‚ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ускорСния доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΡ‡Π΅Π½ΡŒ простого ΠΏΡ€ΠΈΡ‘ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ упоминаСтся здСсь ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΡΡ‚авляСт собой ΡƒΠ΄Π°Ρ‡Π½ΡƒΡŽ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ гибкости связных списков.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ