Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/studb20/public_html/index.php on line 4
 1.19.2 Стеки - Програмування С, С++теорія та практика (частина 1) - Studbook

Програмування С, С++теорія та практика (частина 1)

1.19.2 Стеки

Стек — динамічна структура даних, яка представляє собою впорядкований набір елементів, в якому додавання нових елементів і видалення існуючих проходить з одного кінця, який називається вершиною стека.

Стек реалізує принцип ЬІРО (іакі іп - йгкі оиі, останнім прийшов - першим пішов). Найбільш наглядним прикладом організації стеку може бути дитяча пірамідка, де додавання і знімання кілець здійснюється як раз відповідно до цього принципу.

Основні операції, які можна виконувати над стеками :

•        додавання елемента в стек;

•        вилучення елемента із стека;

•        перевірка, чи порожній стек;

•        перегляд елемента у вершині стека без видалення;

•        очистка стека.

Стек створюється так само, як і лінійний список, так як стек є частковим випадком односпрямованого списку.

£урейе£ 1опд е1ет^уре;

£урейе£ з'Ьгис'Ь пойе {

е1ет^уре Vа1; з'Ьгис'Ь пойе *пех£;

} з'Ьаск;

Реалізація основних операцій над стеками :

1.   Початкове формування стеку з£аск *£ігз'Ь(е1ет'Ьуре й)

{

з£аск *рV=(з■Ьаск*) са11ос(1,зігео£(з^аск)); рV->Vа1=й;

рV->пех£=ниьь; ге'Ьигп рV;

};

2.   Занесення значення в стек

VОій ризЬ(з^аск **'Ьор,е1ет'Ьуре й)

{

з£аск *рV=(з^аск*) са11ос(1,зігео£(з^аск));

рV->Vа1=й;

рV->пех£= * £ор;

*■Ьор=рV;

};

3.  Вилучення елемента зі стека е1епЛуре рор(з£аск **£ор)

{

е1епЛуре ■Ьетр= (* £ор) - ^а1 ; з £аск *рV= * £ор;

*    £ор=(* £ор)->пеx^;

£гее(рV); ге'Ьигп ■Ьетр;

};

 

97