Калкулатор работещ с обратен полски запис

274 views
Skip to first unread message

Viktor Nonov

unread,
Dec 10, 2012, 3:32:12 PM12/10/12
to prog1...@googlegroups.com
Здравейте,

Току що качих програмата при презентациите, както и самата презентация от днес.
В кода ще видите, че съм използвал масив, който е глобална променлива и е с име stackOfDigits, както и две функции pop и push, които оперират с него.
Който иска може да потърси из интернет какво е Stack и за какво се използват push и pop и да напише подробен пост в групата.
Отговорът, който е най-изчерпателен ще получи 6 точки, а другите отговори по 1, 2 или 3 точки.

Имате време до 16.12.2012 23:59:59:99

Виктор

Luboslav Ivanov

unread,
Dec 10, 2012, 4:26:27 PM12/10/12
to prog1...@googlegroups.com

Стек (структура от данни)

Стекът е линейна структура от данни в информатиката, в която обработката на информация става само от едната страна наречена връх. Дъното не е и не трябва да е достъпно. Стековете са базирани на принципа LIFO – (Last In First Out = Последен влязъл пръв излязъл).

Начин на работа

Стекът теоретично може да събере безкраен брой обекти, но на практика само краен брой, ограничен от количеството памет. Обектите могат да се поставят и да се четат (вадят) единствено от горната страна на стека.

Стекът има три операции:

      • push (добавяне) – Поставя нов обект върху стека.
      • pop или pull (изваждане/изтегляне) – Вади най-горния (последно добавения) елемент от стека.
      • peek (надникване) – Показва най-горния елемент от стека без да го изважда.

Стефан Димитров

unread,
Dec 11, 2012, 3:01:04 AM12/11/12
to prog1...@googlegroups.com
Намерих сравнение / обяснение, каквото винаги съм обичал да получавам, за да си представя нещата : 

Може да си представите стека като кутия тенис топки, която е запушена от едната страна. Можем да слагаме топки само от едната страна и ако искаме да извадим най-долната, трябва да извадим всички които са над нея.

Прилагам картинка, ако някой не е виждал кутия за тенис топки.



Kiril Kostadinov

unread,
Dec 16, 2012, 4:29:54 PM12/16/12
to prog1...@googlegroups.com

Stack са данни от тип LIFO (Last In, First Out). Един stack може да има всякакви типове данни (stack от int, от float, от char и тн.). Stack-ът се обработва с две операции, наречени push и pop (понякога се нарича pull)

Операцията push добавя нов елемент най-отгоре в stack-а и го инициализира, ако досега не е имало елементи. Push може да препълни stack-а, което е известно като Stack Overflow (много позната грешка за хората, занимавали се с рекурсия на Pascal миналата година :D ).

Операцията pop изтрива най-горния (последно добавения) елемент от stack-а. Pop може да изпразни stack-a, което е известно като Stack Underflow.

Stack може да се използва за много неща, например превръщане на десетично число в двоично, решаване на задачата за Ханойските кули (правена миналата година на Pascal), сортиране и други.

Reply all
Reply to author
Forward
0 new messages