A verem adatszerkezet használatának gyakorlása céljából elkészítjük Dijkstra kétvermes algoritmusának implementációját.
Verem adatszerkezet standard könyvtárakban
java |
c++ |
import java.util.Stack; |
#include <stack> |
Stack<Integer> s; |
stack<int> s; |
s.push(10); |
s.push(10); |
x = s.peak(); |
x = s.top(); |
y = s.pop(); | y = s.top(); s.pop(); | if (s.empty()) {...} | if (s.empty()) {...} |
Algoritmus Tokenenként olvassuk a kifejezést. - nyitózárójel: nem csinálunk semmit
- műveleti jel: operátorveremre tesszük
- szám: operandusveremre tesszük
- csukózárójel: az operandusverem két legfelső elemét kivesszük, elvégezzük velük az operátorveremből kivett műveletet, végül az eredményt visszatesszük az operandusveremre
- ha vége a kifejezésnek, az operandusveremben van a végeredmény
Feladat
|