Стек жана кезек

Стек (LIFO) жана кезек (FIFO): кашаа ырааттуулуктары жана иштетүү тартиби.

Эң жөнөкөй эки маалымат структурасы алып чыгуу тартиби менен айырмаланат: • Стек — LIFO (last in, first out): акыркы келген — биринчи чыгат. Табактардын үймөгү сыяктуу. • Кезек — FIFO (first in, first out): биринчи келген — биринчи чыгат. Дүкөндөгү кезек сыяктуу. C++ тилинде стек — std::stack (push, top, pop), кезек — std::queue (push, front, pop). Стек боюнча канондук маселе — туура кашаа ырааттуулугу: ар бир жабуучу кашаа акыркы ачылганга дал келиши керек. «Акыркы ачылганы» — бул дал стектин чокусу.

Үч түрдөгү кашааларды текшерүү. Киргизиңиз: ([]{}())

Көп унутулган эки текшерүүгө көңүл буруңуз: стек БОШ болгондо жабуучу кашаа (ашыкча жабуучу) жана аягында БОШ ЭМЕС стек (жабылбаган кашаалар). Кезекти байкабасаңыз да көргөнсүз: ал 4-деңгээлде күтүп турган туурасынан кыдыруунун (BFS) негизинде жатат. Азырынча — тейлөө тартибинин минималдуу мисалы.

Кезек: ким биринчи келсе, ошол биринчи тейленет

Тапшырма: кашаалардан турган сап боюнча эң терең уялоонун узундугун табыңыз (кеңеш: бул бүт убакыт ичиндеги стектин максималдуу өлчөмү; бир түрдөгү кашаа үчүн эсептегич да жетет). Сабакты өттүм деп белгилеп, set жана map структураларына өтүңүз.
Доска