Created
January 6, 2016 19:59
-
-
Save dafr32/50fd3944ae37f4c6d0c4 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <cstdlib> | |
#include <iomanip> | |
using namespace std; | |
/* | |
Odwrotna notacja polska ONP | |
Koncepcja: | |
1. Utworzenie struktury elementu listy | |
2. Utworzyć wskaźnik na pierwszy element listy | |
3. Utworzyc funkcję Push() | |
4. Utworzyc funkcję Pop() | |
5. Pobrać ciąg ONP z klawiatury | |
6. Obliczyć wartość działania | |
*/ | |
//1. Utworzenie struktury elementu listy | |
struct T_element{ | |
int liczba; | |
T_element *nastepny; | |
}; | |
//2. Utworzyć wskaźnik na element | |
T_element *pierwszy = NULL; | |
//połóż na stos | |
void Pop(int parametr1) | |
{ | |
T_element *tmp = new T_element; // utworzenie nowego dynamicznego wskaźnika | |
// na nieistniejącą zmienną | |
// 2. przypisać mu wartości parametru | |
tmp->liczba = parametr1; | |
// 3. Umieszczenie elementu na początku listy | |
tmp->nastepny = pierwszy; | |
pierwszy = tmp; | |
} | |
//zdejmij ze stosu | |
int Push() | |
{ | |
T_element *tmp = pierwszy; | |
pierwszy = pierwszy->nastepny; | |
// jeśli poszukiwane imie jest w pierwszym elemencie | |
return tmp->liczba; | |
} | |
int main() | |
{ | |
string dzialanie; | |
int kod; | |
cout <<"Podaj dzialanie:"; cin>>dzialanie; | |
for(int i=0;i<dzialanie.length();i++) | |
{ | |
kod = dzialanie[i]; | |
if (kod-48>=0 && kod-48<=9) | |
Pop(kod-48); | |
else | |
{ | |
int p2=Push(); | |
int p1=Push(); | |
switch(kod) | |
{ | |
case 42: // * | |
Pop(p1*p2); | |
break; | |
case 43: // + | |
Pop(p1+p2); | |
break; | |
case 45: // - | |
Pop(p1-p2); | |
break; | |
case 47: // / | |
Pop(p1/p2); | |
break; | |
} | |
//cout<<pierwszy->liczba<<endl; | |
} | |
} | |
cout << "wynik ="<<Push(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment