Poljska I Reverzna Poljska Notacija

You might also like

You are on page 1of 17

FAKULTET PRIRODOSLOVNO-MATEMATIČKIH ZNANOSTI I KINEZIOLOGIJE

SVEUČILIŠTE U SPLITU

Poljska i reverzna poljska notacija


Ivan Matasović

SEMINARSKI RAD IZ PREDMETA „Strukture podataka i algoritama“


SPLIT, 2010.
Sadržaj:

1.UVOD....................................................................................................3
2.POLJSKA NOTACIJA...........................................................................4
2.1.Aritmetika...................................................................................................4
2.2.Računalno programiranje...........................................................................5
3.REVERZNA POLJSKA NOTACIJA.......................................................5
3.1.Objašnjenje................................................................................................5
3.2.Praktične implikacije i nedostatci...............................................................6
3.3.Implementacija...........................................................................................6
4.PRIMJENE STOGOVA.........................................................................7
4.1.Primjer – Evaluacija postfiksnog izraza.....................................................11
5.Primjer – Binarno stablo......................................................................15
6.ZAKLJUČAK........................................................................................16
7.LITERATURA......................................................................................17

2
1. Uvod

U ovom seminaru govoriti cemo o poljskoj i reverznoj poljskoj notaciji. Cilj seminara je
upoznavanje osnovnog principa spomenute notacije.

Prefiksna notacija ili prefiksni sustav oznaka je oblik notacije u logici, aritmetici i algebri. Njena
istaknuta osobina jest ta da su operatori postavljeni lijevo od operanada. Ukoliko je mjesnost
operatora čvrsta (tj. fiksirana), kao rezultat se dobiva sintaksa bez ikakvih zagrada a koja i dalje
može biti parsirana bez ikakve nejednoznačnosti. Poljski je logičar Jan Lukasiewicz izmislio ovu
notaciju oko 1920. kako bi pojednostavnio sustav oznaka propozicijskog računa. Ponekad se ova
notacija naziva i poljska notacija, kako bi se naglasila njegova nacionalnost.Iako se više ne koristi
toliko učestalo u logici, našla je uporabu u računarstvu.

Postfiksna notacija ili postfiksni sustav oznaka je matematička notacija u kojoj svaki operator
slijedi nakon svih svojih operanada. Poznatija je kao obrnuta poljska notacija (ili samo RPN od
engl. reverse Polish notation), po analogiji sa srodnom poljskom notacijom, prefiksnom
notacijom koju je 1920. uveo poljski matematičar Jan Łukasiewicz.Postfiksnu notaciju je izmislio
australski filozof i računalni znanstvenik Charles Hamblin sredinom 50-ih godina dvadesetog
stoljeća. Hamblin je predstavio svoj rad na konferenciji u lipnju 1957. te ga objavio 1957. i
1962.Većina ovoga što slijedi se odnosi na binarne operatore. Unarni operator za kojeg se
dogovorno koristi postfiksna notacija jest faktorijela.

3
2. Poljska notacija (prefiksna notacija)

2.1. Aritmetika

Izraz za zbrajanje brojeva jedan i dva je u prefiksnoj notaciji zapisan kao "+ 1 2", mjesto kao "1 +
2". U složenijim izrazima, operatori još uvijek prethode operande, ali i sami operandi mogu biti
netrivijalni izrazi koji uključuju svoje operatore. Na primjer, izraz koji bi bio zapisan kao
5 - (6 + 7)
u konvencionalnoj infiksnoj notaciji, bi bio zapisan kao
- 5 (+ 6 7)
ili jednostavno
-5+67
u prefiksnoj notaciji.

S obzirom da su jednostavni aritmetički operatori svi binarne funkcije (barem binarne, u


aritmetičkim kontekstima), njihove prefiksne reprezentacije su stoga nejednoznačne, pa je
zagraĎivanje prefiksnih izraza stoga nepotrebno. U prethodnom su primjeru zagrade u infiksnoj
verziji bile obavezne, pošto bi njihovo odstranjivanje:
(5 - 6) + 7
ili jednostavno premještanje,
5-6+7
promijenilo značenje i rezultat cijelog izraza. S druge strane, odgovarajuća prefiksna verzija ovog
drugog izračuna bi bila zapisana kao
+-567
ObraĎivanje zbrajanja se odgaĎa sve dok oba operanda operacije oduzimanja nisu pročitana. Kao
i sa bilo kojom notacijom, krajnji unutarnji izrazi su prvi evaluirani (vrednovani), s tim da u
prefiksnoj notaciji se ovaj "krajnji unutarnji" kriterij može ostvariti redoslijedom čitanja mjesto
zagraĎivanjem.
Prefiksna notacija jednostavne aritmetike je uglavnom od čisto akademskog interesa. Za razliku
od slične postfiksne notacije (poznate i kao RPN), prefiksna je notacija korištena tek u ponekom,
4
ako i bilo kojem, komercijalnom kalkulatoru. S druge strane, prefiksna aritmetika se često koristi
u prvom, konceptualnom koraku podučavanja računalnih programskih jezika koji koriste
prefiksnu notaciju.

2.2.. Računalno programiranje

Prefiksna notacija ima široku primjenu u Lispovim S-izrazima, gdje su zagrade potrebne zbog
aritmetičkih operatora promjenjive mjesnosti (ariteta). Srodna postfiksna notacija (ili "obrnuta
poljska notacija") se često koristi u stogovno orijentiranim programskim jezicima, te predstavlja
načelo djelovanja odreĎenih kalkulatora, posebice onih od tvrtke Hewlett-Packard.
Iako se čini naizgled očitim, važno je naglasiti da broj operanada u izrazu mora biti jednak broju
operatora plus jedan, inače naredba nema smisla (pretpostavljajući samo da su binarne operacije
korištene u izrazu). Ovo se lako može previdjeti prilikom baratanja sa dužim, složenijim izrazima
sa po nekoliko operatora, te stoga valja pripaziti da izraz ima smisla prilikom korištenja prefiksne
notacije.

3. Reverzna poljska notacija (postfiksna notacija)

3.1. Objašnjenje

U postfiksnoj notaciji operatori slijede svoje operande. Na primjer, za zbrajanje tri i četiri se piše
"3 4 +" mjesto "3 + 4". Ukoliko postoje višestruke operacije, operator je dan neposredno nakon
drugog operanada, tako da bi izraz napisan u "3 - 4 + 5" u uobičajenoj infiksnoj notaciji bio
zapisan kao "3 4 − 5 +" u RPN: prvo se oduzima 4 od 3, te potom na taj rezultat dodaje 5.
Prednost RPN je ta što odstranjuje potrebu za zagradama koje pak zahtijeva infiksna notacija.
Iako "3 − 4 + 5" može biti zapisan kao "(3 − 4) + 5", to znači nešto posve drukčije od "3 − (4 +
5)", i samo se zagraĎivanjem može razriješiti nejednoznačnost meĎu dvama značenjima. U
postfiksnoj notaciji, potonje bi bilo zapisano kao "3 4 5 + −", što nejednoznačno znači
"3 (4 5 +) −".
Interpreteri postfiksne notacije su bazirani na stogu. To jest, operatori su potisnuti na vrh stoga, a
kad se operacija obavi, operandi su dohvaćeni sa stoga i rezultat je opet potisnut na vrh. Stogovi,

5
a stoga i RPN, imaju tu prednost što se lako programski i sklopovski ostvaruju i stoga su vrlo
brzi.

3.2. Praktične implikacije i nedostatci

Čitanjem slijeva na desno, izračuni se mogu obaviti čim je pročitan operator; obraĎivanje uvijek
može započeti prije nego je cijeli izraz pročitan.

Bilo koje vrste zagrada su nepotrebne.

U RPN izračunima, nije potrebna tipka "=", kao što je potrebna u korištenju uobičajenih
kalkulatora, da bi se prislilo izvršavanje izračuna i evaluacija (vrjednovanje) izraza.

S druge strane, RPN kalkulatori zahtijevaju tipku "Enter" kako bi razdvojili susjedne numeričke
operande.

Stanje je uvijek samo stog vrijednosti koje čekaju operacije. Nikad se ne može dogoditi da je
operator već unesen i još čeka operande.

Široka uporaba stanardnih ureĎenih jednadžbi (infiksnih) u obrazovnom sustavu (i stoga su


infiksni elektronički kalkulatori norma u školskim predavaonicama) može ponekad učiniti RPN
nepraktičnom, teškom i ometajućom. (S druge strane, računalu je lako pretvoriti infiksnu notaciju
u postfiksnu, korištenjem poznatog Dijsktrinog shunting yard algoritma).

Susjedni brojevi moraju biti razdvojeni bjelinama, što zahtijeva precizan rukopis kako bi se
spriječila zabuna (na primjer, "12 34 +" bi moglo izgledati kao "123 4 +").

Većina RPN elektroničkih kalkulatora imaju programibilne funkcije i višestruke memorijske


registre. U formalnim ispitima su takvi kalkulatori sa proširenim funkcijama često zabranjeni,
dok je korištenje jednostavnih infiksnih kalkulatora dozvoljeno.

3.3. Implementacija

Prva računala koja su implementirala arhitekture koje su omogućile RPN su bili KDF9 strojevi
tvrtke English Electric, koji su bili najavljeni 1960. i postali komercijalno dostupni od 1963.
godine, te američki Burroughs B5000, najavljeni 1961. i takoĎer dostupni od 1963. Jedan od

6
dizajnera B5000 modela, R. S. Barton, kasnije je pisao kako je razvio RPN nezavisno od
Hamblina negdje oko 1958. dok je čitao udžbenik o simboličkoj logici, i prije nego je postao
svjestan Hamblinovog rada.

Tvrtka Friden je uvela RPN na tržište stolnih kalkulatora sa EC-130 modelom u lipnju 1963.
Hewlett-Packard (HP) inženjeri su dizajnirali 9100A Desktop Calculator 1968. sa RPN. Ovaj je
kalkulator popularizirao RPN u znanstvenim i inženjerskim krugovima, iako prve reklame za
9100A uopće nisu spominjale RPN. HP-35 model znanstvenog kalkulatora je bio prvi džepni
RPN kalkulator 1972. HP-10C serija kalkulatora, uključujući poznati financijski kalkulator HP-
12C, je takoĎer koristila RPN. Kad je HP uveo kasniji model poslovnog kalkulatora HP-19B bez
podrške za RPN, povratna sprega od strane financijera i drugih korisnika koji su navikli koristiti
model 12-C ih je prisilila da puste u prodaju model HP-19BII, koji je korisnicima šružio
mogućnost odabira algebarske notacije ili RPN.

4. Primjene stogova

Stogovi se često koriste u različitim softverskim sistemima, kako u aplikacijskim tako i u


sistemskim. Kao primjer njihove primjene na ovom mjestu će biti opisana primjena stogova za
predstavljanje aritmetičkih izraza. U svakodnevnom životu za prikaz aritmetičkih izraza
koristimo tzv. infiksnu notaciju. Na primjer, zbroj brojeva 7 i 4 se prikazuje kao 7+4. Operator +
je binarni operator jer zahtijeva dva operanda: 7 i 4. U infiksnoj notaciji binarni operator se
smješta izmeĎu operanada. Iako je infiksna notacija vrlo široko rasprostranjena, ipak, takav način
zapisa aritmetičkih izraza nije najprikladniji za obradu u različitim računarskim primjenama. Na
primjer, ako imamo slijedeći izraz 7+4*3 (operator * prikazuje množenje), te ako zanemarimo
konvencije o prioritetima operatora, postavlja se pitanje koja od dvije prisutne operacije se
izvršava prvo. Da li se prvo izvršava operacija zbrajanja ili se prvo izvršava operacija množenja?
Ako uzmemo u obzir prihvaćene konvencije prema kojima operacije množenja i dijeljenja imaju
veći prioritet u odnosu na operacije zbrajanja i oduzimanja, onda
prethodni izraz svodimo na 7+12. Bitno je istaknuti da je za primjenu prethodno spomenutog
pravila o prioritetima u računarskim sistemima potrebno to pravilo ugraditi u aritmetički sistem
kao dodatno pravilo. Osim toga, kada budemo željeli da u nekom aritmetičkom izrazu
primijenimo drugačiji redoslijed operacija koji ne proizlazi iz konvencija o prioritetima, morat
ćemo uvesti dodatnu notaciju u obliku zagrada. Na primjer, ako želimo prvo zbrojiti 7 i 4, a zatim
rezultat zbrajanja pomnožiti sa 3, tada je potrebno prethodni izraz prikazati kao (7+4)*3.
Primjenom zagrada smo zapravo definirali pripadnost operanda 4 operatoru sabiranja a ne
operatoru množenja. Općenito, pripadnost operanda operatoru možemo nedvosmisleno definirati
tako da se operator zajedno sa svojim operandima okruži zagradama. Takav oblik zapisa se
naziva izraz sa potpunim zagradama. Uzmimo slijedeći primjer izraza sa potpunim zagradama:

(((24/6)*(7-2))+15)

7
Definirajmo nivo ugnježĎivanja kao broj parova zagrada koji se nalaze oko nekog operatora. U
aritmetičkim izrazima sa potpunim zagradama redoslijed izvršavanja operatora je po opadajućem
nivou ugnježĎivanja. Prvo se izvršavaju operatori sa najvećim nivoom, nakon toga slijede
operatori sa slijedećim manjim nivoom, a na kraju se izvršavaju operatori s nivoom 1. U gornjem
izrazu postoje dva podizraza koji imaju nivo 3. To su podizrazi: (24/6) i (7-2). U takvim
situacijama, kada više operatora ima isti nivo, izvršavanje operatora se obavlja s lijeve strane
prema desnoj strani. To znači da će se u gornjem aritmetičkom izrazu prvo izračunati izraz
(24/6), a zatim izraz (7-2). Nakon toga se prelazi na nivo 2 na kojem se nalazi operator *,
odnosno slijedeći podizraz: ((24/6)*(72)). Na nivou 1 se nalazi operator + pa se izračunava izraz
(((24/6)*(7-2))+15), što na kraju daje konačan rezultat. Kod izraza sa potpunim zagradama nije
potrebno definirati prioritet operatora. MeĎutim, upravo definiranjem prioriteta operatora se
smanjuje broj zagrada. Kao primjer možemo navesti da je operacijama množenja i dijeljenja
pridružen veći prioritet u odnosu na operacije zbrajanja i oduzimanja. Ako se neki operand nalazi
izmeĎu dva operatora sa različitim prioritetom, tada se operand pridružuje operatoru sa
definiranim većim prioritetom. Na primjer, u izrazu 24/6+15 operand 6 je pridružen operatoru
dijeljenja. U zapisu sa potpunim zagradama prethodni izraz ima oblik ((24/6)+15). Ako bi željeli
da operand 6 pridružimo operatoru +, onda bi zapis prethodnog izraza trebao biti 24/(6+15). Za
svaki operator je pored prioriteta potrebno definirati i smjer grupiranja koji se primjenjuje kod
susjednih operatora istog prioriteta. Najčešće se koristi smjer grupiranja s lijeve strane u desno.
Kod izraza sa nepotpunim zagradama redoslijed izvršavanja operatora je takav da se prvo
izvršavaju operatori na višim nivoima, a zatim operatori na nižim nivoima. U situaciji kada ima
više operatora u okviru istog para zagrada izvršavanje operatora je definirano prioritetom, te ako
više susjednih operatora ima isti prioritet redoslijed izvršavanja je definiran smjerom grupiranja.
Na primjer, za izraz sa nepotpunim zagradama 24/6*(7-2*3)+15 redoslijed izvršavanja operatora
bi bio:
1. 2*3
2. 7-2*3
3. 24/6
4. 24/6*(7-2*3)
5. 24/6*(7-2*3)+15

Prema tome, možemo zaključiti da korištenje infiksne notacije zahtijeva uvoĎenje dva dodatna
koncepta. Prvi koncept se odnosi na prioritet operatora, dok se drugi koncept odnosi na upotrebu
zagrada pomoću kojih se može odrediti redoslijed izvršavanja operacija. Osim toga, prevodiocu
je potrebno da u više navrata ispituje izraz s lijeva udesno da bi odredio redoslijed izvršavanja
operacija. Ovaj nedostatak infiksne notacije se može izbjeći upotrebom prikaza aritmetičkih
izraza sa drugačijim rasporedom operanada i operatora. Jedan od tih načina prikaza je tzv.
postfiksna notacija ili reverzna poljska notacija (eng. reverse Polish notation). Prema
postfiksnoj notaciji, kao što i samo ime sugerira, operator se nalazi iza operanada. Na primjer,
izraz za zbroj 7 + 4 napisan u infiksnoj notaciji, bi u postfiksnoj notaciji imao oblik 7 4 +. Dakle,
aritmetički izraz u infiksnoj notaciji pretvaramo u izraz zapisan u postfiksnoj notaciji tako što se
operator sa mjesta izmeĎu dva operanda premjesti iza drugog operanda. Kod nešto složenijih
izraza, najjednostavniji način da izraz u infiksnoj notaciji zapišemo u obliku sa potpunim
zagradama. Zatim svaki operator prebacimo na mjesto tom operatoru pripadajuće desne zagrade,
te na kraju uklonimo sve zagrade iz izraza. Na primjer, ako imamo izraz u infiksnom zapisu 15 +
24/(6-3)+(8-4)*5, prvo ćemo taj izraz pretvoriti u izraz sa potpunim zagradama:

8
( ( 15 + ( 24 / ( 6 -3 ) ) ) + ( ( 8 -4 ) * 5 ) )

((15 +( 24/(6-3)))+((8-4)*5))

Zatim ćemo premjestiti operatore na mjesto pripadajućih desnih zagrada:

( ( 15 ( 24 ( 6 3 -/ + ( ( 8 4 -5 * +

Nakon uklanjanja lijevih zagrada dobijamo izraz zapisan u postfiksnoj notaciji:

15 +*548+/3624--

Možemo reći da na prvi pogled nije tako očigledno zašto primjena postfiksne notacije rezultira
aritmetičkim sistemom koji eliminira potrebu za prioritetima operatora i zagradama. Zato ćemo u
nastavku opisati jedan algoritam za evaluaciju izraza u postfiksnoj notaciji. Taj algoritam koristi
stekove i radi na slijedeći način:

1. Inicijalizirati prazan stog s pozivom funkcije Init_Stack(S,n).


2. Sve dok u ulaznom postfiksnom izrazu ima simbola čitati slijedeći simbol x s lijeva na desno;
(a) Ako je pročitani simbol x operand i. staviti ga na stek S (push(S,x));
(b) Inače, ako je simbol x binarni operator,
i.uzeti sa stoga dva operanda u varijable a i b (a=pop(S), b=pop(S),
ii.primijeniti operator x (rez=a x b)
iii.rezultat rez staviti na stog (push(S, rez).

3. Nakon čitanja svih simbola iz ulaznog stoga uzeti rezultat sa stoga (rez=pop(S))
4. Ispitati da li je stog prazan nakon čitanja rezultata u varijablu rez.
(a) Ako je stek nakon čitanja rezultata ostao prazan onda algoritam kao rezultat vraća vrijednost
rez.
(b) Inače, ako stog nije prazan algoritam signalizira da je ulazni postfiksni izraz nepravilan.
Mehanizam rada algoritma ćemo ilustrirati na jednom jednostavnom primjeru. Na primjer,
razmotrimo slijedeći izraz: 4 3 + 8 *. Na Slici 1.0. je prikazano stanje na stogu u svakoj fazi
algoritma. Na početku se prvo pročita token 4 i stavlja se na stog. Zatim se čita slijedeći token 3 i
takoĎer se stavlja na stog. Treći pročitani token je operator (+), pa se sa steka uzimaju dva tokena
(3 i 4), primjenjuje se operator + što rezultira brojem 7 koji se u skladu s algoritmom stavlja na
stek. Slijedeći pročitani token je broj 8, tako da se stavlja na stog. Zadnji pročitani token (*) je
operator, što znači da se sa stoga trebaju uzeti dva tokena (8 i 7) da bi se primijenio pročitani
operator (*). Rezultat primjene operatora je 56 i stavlja se na stog. Nakon čitanja svih simbola u
ulaznom izrazu, u slijedećem koraku se sa stoga uzima rezultat (56). Pošto je stog ostao prazan,
algoritam vraća rezultat 56.

9
Slika 1.0.

Prema tome, postfiksni izraz 4 3 + 8 * je evaluiran kao infiksni izraz (4+3)*8, pri čemu za zapis
postfiksnog izraza nisu korišteneni prioriteti opearotora i zagrade. Pogledajmo sada kako će biti
evaluiran slijedeći izraz: 4 3 8 * +. Na Slici 1.1. je prikazano stanje stoga za svaku od faza
izvršavanja algoritma.

Slika 1.1.

Dakle, postfiksni izraz 4 3 8 * + je evaluiran kao 4 + (3*8). Radi ilustracije algoritma razmotrimo
još jedan primjer postfiksnog izraza:

Na Slici 1.2. je prikazano stanje na stogu u pojedinim koracima izvršavanja algoritma.

10
Slika 1.2. Evaluacija postfiksnog izraza 15 24 6 3 - / + 8 4 – 5 * +

Kada se pročitaju svi znakovi iz ulaznog postfiksnog izraza na stogu treba ostati samo jedan
element koji predstavlja rezultat. Nakon čitanja rezultata stog bi trebao ostati prazan ako je
postfiksni izraz pravilan. U suprotnom, ako nakon uzimanja rezulatata stog nije prazan, to znači
da postfiksni izraz nije pravilan i da sadrži više operanada nego što broj operatora zahtijeva.
Osim toga, greška zbog neispravnosti izraza se može pojaviti i u slučajevima kada je u
postfiksnom izrazu pročitan znak koji predstavlja operator, pa se pri uzimanju operanada sa stoga
pojavljuje greška zbog toga što je stog prazan. Ovakva situacija predstavlja situaciju u kojoj
pročitani operator nema dovoljno operanada. Iz prethodnih primjera možemo vidjeti da je
prednost postfiksne notacije u tome da se izračunavanje izraza može obaviti u samo jednom
prolazu bez voĎenja računa o zagradama i prioritetima.

4.1. Primjer – Evaluacija postfiksnog izraza

U ovom primjeru je ilustrirana primjenu stogova u algoritmu za evaluaciju postfiksnih izraza.


Primjer uključuje slijedeće datoteke:

• intstack.h
• intstack.cpp
• intpost.h
• intpost.cpp
• main.cpp

U tablici 1.1. je prikazan sadržaj datoteke intpost.h u kojoj je definirana klasa IntPostFix. U
tablici 1.2. je prikazana datoteka intpost.cpp u kojoj su definirane članske funkcije za klasu
IntPostFix. U tabeli 1.3. je prikazana datoteka main.cpp u kojoj se nalazi testni program.

11
Tablica 1.0. - intpost.h

12
13
Tablica 1.2. - intpost.cpp

Tablica 1.3. – main.cpp

14
5. Primjer – Binarno stablo

Binarno stablo se može prikazati i tekstualnim zapisom, prema algoritmu prefiksne notacije
stabla, na sljedeći način:

Algoritam: Prefiksna notacija stabla

1. Ako čvor predstavlja prazno stablo (NULL pokazivač), tada


zapiši prazne zagrade ():
2. Ako čvor predstavlja list stabla, tada
zapiši element lista.
3. Ako čvor predstavlja unutarnji čvor, tada
unutar zagrada zapiši element čvora te lijevi i desni cvor.

Za stablo vrijedi zapis:

Ovaj oblik notacije se naziva prefiksna notacija jer se apstraktno može smatrati da element
unutarnjeg čvora stabla predstavlja prefiksni operator koji djeluje na svoju djecu.
Prefiksna notacija se često koristi za zapis aritmetickih izraza. Ona se vrši na nacin da se u
zagradama najprije zapiše operator, a zatim dva operanda. Operand može biti broj ili izraz. Ako
je operand izraz, ponovo se primjenjuje isto pravilo. Primjerice, izraz infiksne notacije 8*(7+3)
ima prefiksnu notaciju ( * 8 (+3 7) ). Zbog ovog svojstva aritmetički izrazi se mogu pohraniti u
binarnom stablu.

15
6. Zaključak

Upoznavši osnovni princip poljske i reverzne poljske notacije vidjeli smo da su mnoge tvrtke
uvele RPN na tržište stolnih kalkulatora 1963. Godine. Taj kalkulator je popularizirao RPN u
znanstvenim i inženjerskim krugovima, iako prve reklame uopće nisu spominjale RPN. A
prefiksna je notacija osobito popularizirana kod stogovno baziranih operacija zbog svoje uroĎene
sposobnosti da lako razlikuje redoslijed operacija bez potrebe za zagradama. Da bi se evaluirao
redoslijed operacija u prefiksnoj notaciji, nije ni potrebno zapamtiti hijerarhiju prednosti
operatora, kao što je već potrebno sa infiksom notacijom. Umjesto toga, izravno se gleda u zapis
da bi se otkrio operator koji se prvi evaluira. Takoder način na koji se primjenjuje u binarnom
stablu vrlo je učinkovit te jednostavan, i s tim riječima zaključujem ovaj seminar.

16
7. Literatura

http://www.hpmuseum.org/rpn.htm 26.01.2010.
http://lukaszwrobel.pl/blog/reverse-polish-notation-parser 26.01.2010.
http://snipplr.com/view/8962/infix-notation-to-reverse-polish-notation/ 26.01.2010.
http://h20331.www2.hp.com/hpsub/us/en/rpn-calculator.html 27.01.2010.
http://www.spsu.edu/cs/faculty/bbrown/web_lectures/postfix/ 27.01.2010.
http://www.scribd.com/doc/11541643/Programski-Jezik-C 27.01.2010.

17

You might also like