Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 38

Автор Π‘Π΅Ρ€Ρ‚Ρ€Π°Π½ ΠœΠ΅ΠΉΠ΅Ρ€

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² качСствС основы для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСмы трСбуСтся Π½Π°ΠΉΡ‚ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ описания, Ρ‡Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ прСдставлСниС.

Какова Π΄Π»ΠΈΠ½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ?

Как Π±Ρ‹ стСки Π½Π΅ заставили нас Π·Π°Π±Ρ‹Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ ΠΈΠ·Π»ΡŽΠ±Π»Π΅Π½Π½Ρ‹Ρ… спСциалистами ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ структуры Π΄Π°Π½Π½Ρ‹Ρ…, тСсно связанныС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. Π’ΠΎΡ‚ Π·Π°Π±Π°Π²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, взятый ΠΈΠ· ΠΏΠΎΡ‡Ρ‚Ρ‹ Ρ„ΠΎΡ€ΡƒΠΌΠ° Риски (Risks) (Π³Ρ€ΡƒΠΏΠΏΠ° новостСй Usenet comp.risks), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ опасности взгляда Π½Π° Π΄Π°Π½Π½Ρ‹Π΅, чСрСсчур сильно зависящСго ΠΎΡ‚ ΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… свойств. НСкто Π”Π°Ρ€Ρ€Π΅Π»Π» Π”. Π•. Π›ΠΎΠ½Π³, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π°Π³Ρ€Π°Π΄ΠΈΠ»ΠΈ двумя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Π°ΠΌΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» ΡƒΠΊΠ°Π·Π°Π½ лишь ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… "Π”". ПослС обращСния ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Ρƒ Ρ„ΠΈΡ€ΠΌΡ‹ TRW Π΅ΠΌΡƒ Π±Ρ‹Π»Π° прислана другая ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π» лишь Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π» "Π•". Он ΠΏΠΈΡˆΠ΅Ρ‚:

Π― ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΠ» Π² Π±ΡŽΡ€ΠΎ Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΡ€Π΅Π΄ΠΈΡ‚ΠΎΠ², ΠΈ оказалось, Ρ‡Ρ‚ΠΎ, ΠΏΠΎ-Π²ΠΈΠ΄ΠΈΠΌΠΎΠΌΡƒ, программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π» Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… TRW, Ρ€Π΅ΡˆΠΈΠ», Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ Π°ΠΌΠ΅Ρ€ΠΈΠΊΠ°Π½Ρ†Ρƒ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Π½ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅ имя лишь с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΎΠΌ. Как Π²Π΅ΠΆΠ»ΠΈΠ²ΠΎ объяснила ΠΌΠ½Π΅ ΠΏΠΎ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ Π΄Π°ΠΌΠ°: "Они Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ Π² систСмС достаточно ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚ (sic) Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ это Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ".

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

Автор ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ΡˆΠ΅ письма, Π² основном, бСспокоился ΠΈΠ·-Π·Π° Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠΉ ΠΏΠΎΡ‡Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ нСприятно, Π½ΠΎ Π½Π΅ ΡΠΌΠ΅Ρ€Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π°Ρ€Ρ…ΠΈΠ²Ρ‹ Ρ„ΠΎΡ€ΡƒΠΌΠ° Риски (Risks) ΠΏΠΎΠ»Π½Ρ‹ случаями Π²Ρ‹Π·Π²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌΠΈ Π½Π΅Ρ€Π°Π·Π±Π΅Ρ€ΠΈΡ…ΠΈ с Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ послСдствиями. Π£ΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π²ΡˆΠ°ΡΡΡ Π²Ρ‹ΡˆΠ΅ "ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠΈΠ»Π»Π΅Π½ΠΈΡƒΠΌΠ°" являСтся Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ опасности, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π° основС ΠΈΡ… физичСского прСдставлСния, Π΅Π΅ послСдствия обошлись Π² сотни ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ².

К абстрактному взгляду Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹

Как Π½Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Π½Π΅ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΠ² Π·Π° это излишнСй спСцификациСй?

ИспользованиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

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

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ для стСков Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

[x]. Команда вталкивания Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка. НазовСм эту ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ put.

[x]. Команда удалСния Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ элСмСнта стСка. НазовСм Π΅Π΅ remove.

[x]. Запрос элСмСнта, находящСгося Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Π΅ стСка (Ссли стСк Π½Π΅ пуст). НазовСм Π΅Π³ΠΎ item.

[x]. Запрос Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ пустоты стСка. (Он ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ remove ΠΈ item.)

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π°ΠΌ понадобится опСрация-конструктор для создания пустого стСка. НазовСм Π΅Π΅ make.

Π”Π²Π΅ Π²Π΅Ρ‰ΠΈ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… объяснСний Π΄Π°Π»Π΅Π΅ Π² этой Π»Π΅ΠΊΡ†ΠΈΠΈ. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΊΠ° ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ put ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ push, remove ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ pop, Π° item ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ top. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: конструкторы, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, запросы, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π­Ρ‚Π° классификация Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… объяснСний.

ΠŸΡ€ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΌ взглядС Π½Π° структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΡ‹ рассматривали Π±Ρ‹ понятиС стСка, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ объявлСния Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… прСдставлСний, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для прСдставлСния ΠœΠΠ‘Π‘Π˜Π’_Π’Π’Π•Π Π₯. Π’ стилС Паскаля это выглядит ΠΊΠ°ΠΊ


count: INTEGER

representation: array [1 .. capacity] of STACK_ELEMENT_TYPE


Π³Π΄Π΅ константа capacity - это максимальноС число элСмСнтов Π² стСкС. Π’ΠΎΠ³Π΄Π° put, remove, item, empty ΠΈ make Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° структурах, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… этим объявлСниСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΉ шаг Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ абстракции Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ зрСния: Π·Π°Π±Ρ‹Ρ‚ΡŒ Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ прСдставлСнии ΠΈ Π²Π·ΡΡ‚ΡŒ Π² качСствС опрСдСлСния структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ сами ΠΏΠΎ сСбС. Π˜Π½Π°Ρ‡Π΅ говоря, стСк - это любая структура, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ пСрСчислСнныС Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π½Π΅Π²ΠΌΠ΅ΡˆΠ°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π² общСствС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

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

Аналогия с экономикой Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ нашС ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ дальшС, Π°Π³Π΅Π½Ρ‚Ρ‹ - ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ - Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ поставщиками ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌΠΈ, ΠΈ большая Ρ‡Π°ΡΡ‚ΡŒ ОО-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½Π° самом Π΄Π΅Π»Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΠšΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρƒ" - это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π»Π΅ΠΊΡ†ΠΈΠΉ.

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

Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½

Π”Π°Π²Π°ΠΉΡ‚Π΅ убСдимся Π² Ρ‚ΠΎΠΌ Ρ‡Ρ‚ΠΎ, привСдСнная Π²Ρ‹ΡˆΠ΅ спСцификация ΠΈ Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ достаточно ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ. Для Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ сталкивался со стСками, ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΈ обсуТдСнии стСка ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ странными ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡˆΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΡƒΠ²Π°ΠΆΠ°ΡŽΡ‰Π΅ΠΌΡƒ сСбя спСциалисту ΠΏΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ со стСком извСстны ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ:

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ имя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ стСком Имя, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ здСсь Push (Π²Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ) Put (ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ) Pop (Π²Ρ‹Ρ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒ) Remove (ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ) Top (Π²Π΅Ρ€ΡˆΠΈΠ½Π°) Item (элСмСнт) New (Π½ΠΎΠ²Ρ‹ΠΉ) Make (ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ)

Π’Π°Π±Π»ΠΈΡ†Π° 6.1.ИмСна ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ стСком


Π—Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡŽ, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΡƒΡŽΡΡ ΠΎΡ‚ общСпринятой? ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° - Π² ΠΆΠ΅Π»Π°Π½ΠΈΠΈ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π±ΠΎΠ»Π΅Π΅ высокого уровня понимания структур Π΄Π°Π½Π½Ρ‹Ρ… - особСнно "ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для хранСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Π‘Ρ‚Π΅ΠΊΠΈ это просто ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠ½ΠΈ относятся ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°Ρ‚ΡŒ распрСдСлитСлями. Π Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ прСдоставляСт своим ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для хранСния (put), извлСчСния (item) ΠΈ удалСния (remove) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π½ΠΎ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΈΠΌ возмоТности ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ. НапримСр, ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа LIFO, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² стСках, позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΡ‚ элСмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» сохранСн послСдним. Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ распрСдСлитСлСй - ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ доступа "ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π², ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ·" (FIFO): элСмСнты Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Π΅Ρ† ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ, Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ - с Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ†Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ распрСдСлитСлСм, - это массив, Π² Π½Π΅ΠΌ Π²Ρ‹ сами Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚Π΅ цСлочислСнныС Π½ΠΎΠΌΠ΅Ρ€Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

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

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