ALG9

ALG9



5.6. Drzewa i ich reprezentacje 149

stwierdzeniem, że z punktu widzenia komputera ON P jest istotnie bardzo wygodna w użyciu-.

Przypatrzmy się już konkretnym instrukcjom w C++, które zajmują się inicjacją drzewa binarnego.

typedef struct

(

double val; char cp;

}VAL;

void main()

{

STOS<wyrazenie*> s;

VAL t[9]- (    (2,'0'),(3,'0'},(0,' + '), (7, '0'),    (9,'0•>,    (0,'*'),

•0,’+’),(12.5,'0'),(0,'*')); wyrażenie xx; forfint i-0;i<9;i++) i

x=new wyrażenie;

if ( (t [i] .op— •**) I (t [i] .cp==' + ') | |

(11i].op=='-')|i <t[i].cp=='/')I.(tli].op==':')) x->op =t[i]. op;

else

(x->val=t[i].val;x->op='0';) x->lewy -NULL; x->prawy=NULL;

if ( (t(i] .op==,x'J I (t [ i ] . op= *-+•*) I (t [ i ] . op==' - ’} I I (t[i].op=='/')[|(Łli].op«“':1))

wyrażenie *ll,*pl; s.pop(11); s.pop(pl) ; x->lewy -11; x->prawy=pl;

)

s.push(x);

)

pisz_infix(x); cout << "=" « oblicz(x) « endl; pisz_prefix(x);cout « ”=" « oblicz(x) « endl;

>

W powyższym listingu tablica / zawiera poprawną sekwencję danych, tzn. taką, która istotnie stworzy drzewo binarne mające sens. Warto odrobinę poeks-perymentować z zawartością tablicy, aby zobaczyć, jak algorytm „zareaguje” na błędny ciąg danych. Można się spodziewać, że w przypadku np. braku drugiego operanda lub operatora rezultaty otrzymane będą również błędne -jest to prawda, ale najlepiej jest przekonać się o tym „na własnej skórze”.

2 Notabene wbrew pozorom ONP jest dość wszechstronnie stosowana: patrz kalkulatory firmy Hewlett Packard, język Forth, język opisu stron drukarek laserowych Postscript... W pewnych „kręgach” jest to zatem dość znana notacja.


Wyszukiwarka

Podobne podstrony:
ALG5 5.6. Drzewa i ich reprezentacje 145 sposobu korzystania z takiej reprezentacji. Otóż, dowolne
ALG7 5.6. Drzewa i ich reprezentacje 147 Numery znajdujące się przy węzłach mają charakter wyłączni
ALG1 5.6. Drzewa i ich reprezentacje 151 Jak łatwo zauważyć, w zależności od sposobu przechadzania
19 7. Umiejętność kierowania zespołami ludzkimi 239 cennej z punktu widzenia nauki o pracy. Jest to
278 JANUSZ KRUK czarnoziemy lessowe. Bliższa analiza ich rozprzestrzenienia pozwala stwierdzić, że w
skanuj0023 (125) Stwierdzono, że wyznacznik z macierzy przy niewiadomych jest różny od zera, wobec t
skan0046 (2) 3. Termodynamika chemiczna I zasada termodynamiki stwierdza, że energia wewnętrzna U uk
page0020 10 nil ich mowę tak dalece, że jeden drugiego nie rozumiał. Ludzie więc bardzo się zdziwili
elektryczną można się pokusić o stwierdzenie, że miarą rozwoju cywilizacyjnego społeczeństwa jest je
77335 P2280013 A Wnioski ^jr Na podstawie przeprowadzonych badań można stwierdzić, że Poliamid PA 6,
16 Teresa Słaby dla osób niezamożnych. T. Kasser stwierdził, że „pogoń za dobrami materialnymi jest
strukturalne ferroelektiykow typu perows kwitu można stwierdzić, ze przejście do fazy ferroelektrycz
styczeń 1997 Pryzma*S E N A T Prorektor J.Zdanowskl stwierdził, że problem tworzenia budżetu Uczelni
Dzięki tym wykresom mogłyśmy jednoznacznie stwierdzić, że do oznaczania Feł* najlepiej jest zastosow

więcej podobnych podstron