Стек - колекція об'єктів, з якої виймається першим останній доданий об'єкт. Черга - колекція об'єктів, коли першим витягується той об'єкт, який першим в неї і був доданий.
Ці слова дуже часто зустрічається в документації, що додається до різних програмних продуктів. Однак людям, далеким від програмування і мають гуманітарний склад розуму, досить складно часом самостійно дійти до відповіді на питання, що ж ховається за цими назвами. Технічним письменникам, звичайно, варто було б пояснювати докладніше подібні терміни, але, на жаль, вони себе рідко цим обтяжують. "Комп'ютерні вести" зі своєю традиційною рубрикою "F.A.Q." поспішають, як завжди, на допомогу.
Почнемо здалеку - так, на мій погляд, буде зрозуміліше. У програмуванні дуже часто доводиться оперувати з колекціями будь-яких об'єктів - фактично, майже завжди, коли об'єктів більше одного. Ці об'єкти можуть мати різну природу - ними можуть бути файли, записи в базі даних або навіть окремі літери. Залежно від того, як відбувається додавання і витяг елементів для цієї колекції, виділяють різні типи колекцій. Стеком називається така колекція об'єктів, з якої виймається в першу чергу останній доданий об'єкт. Черга ж - це колекція об'єктів, в якій, навпаки, першими витягуються об'єкти, першими в неї і доданими.
Для позначення черги в програмістські жаргоні є спеціальний "розумний" термін - FIFO. Це абревіатура від англійської фрази "first in, first out", тобто "Перший увійшов - перший вийшов". Для позначення стека використовують іншу абревіатуру - LIFO, тобто, "last in, first out", або "останній увійшов - перший вийшов". Найпростіший приклад черзі в реальному житті, в общем-то, знайти нескладно - це і є черга в касу магазину. Приклад стека - це стопка паперу, в якій обов'язково першим береться саме той лист, який був покладений в неї останнім.
Варто відзначити, що дуже часто термін "стек" вживається не тільки стосовно до якоїсь абстрактної колекції об'єктів, організованої описаним вище чином, а до тимчасового сховища вмісту регістра процесорів. Втім, в літературі і документації для кінцевих користувачів більшості програмних продуктів ви навряд чи зустрінете це слово саме з таким значенням.
Версія для друку
Помітили помилку? Виділіть її мишою і натисніть Ctrl + Enter!
Переплутав, сорри :( Алекс, будь ласка, поправте на сайті, якщо Вас не утруднить. Постараюся надалі уважніше.
І ще раз помилився. Треба б "суть $ уйнуть". Різниця між стеком і чергою просте. І стек, і черга - впорядковані динамічні колекції. Але стек містить об'єкти (або елементи, кому як подобається), що використовуються ДЛЯ обслуговування, а чергу - обслуговувати.
Глючить :( Займуся самоотладкой.
Для мене все просто: стек - магазин від автомата, чергу - черга за пивом.
І, значіцца, з стека та по черзі :-)))
Я теж відразу в газеті помітив помилку, ще подумав, чи не глючить чи я. Подумки вщипнув себе, ні, не глючить. Шкода що народ введений в оману. Потрібно обов'язково вибачитися і дати спростування в наступному номері газети!
наступну статтю варто озаглавити "літери російського алфавіту і як ними користуватися".
бо всякі несвідомі "технічні письменники" ці букви використовують, але замовчують про їх призначення.