Zaimplementuj klasę Stack
implementującą ideę stosów napisów z następującymi metodami publicznymi:
push
wkłada jeden element na stospop
zdejmuje jeden element ze stosu i oddaje wartość tego elementu; co się ma dziać gdy,pop
próbuje zdjąc element z pustego stosu?peek
podobnie jakpop
oddaje wartość elementu na szczycie stosu ale go nie zdejmuje; podobny problem z pustym stosem co w przypadkupop
. Podstawową strukturą danych w implementacji stosu powinna być tablica. Stos nie powinien posiadać ograniczeń rozmiaru.
Przygotuj testy jednostkowe dla klasy Stack
zanim przystąpisz do implementacji tej klasy.
Zaimplementuj klasę wyliczającą wyrażenia arytmetyczne zapisane w Odwrotnej Notacji Polskiej. Założenia:
- wyrażenia są ciągami znaków
- program umożliwia wyliczanie wyrażeń złożonych z liczb całkowitych i operacji binarnych takich jak
+
,-
czy*
. - do implementacji wykorzystaj klasę
Stack
z Zadania 1.
Przygotuj testy jednostkowe dla implementacji RPN.
Staraj się zastosować zasady SOLID i Clean Code.