Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

dd drvo -aritmeticki izraz

[es] :: C/C++ programiranje :: C/C++ za početnike :: dd drvo -aritmeticki izraz

[ Pregleda: 4246 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

JECA28
BEOGRAD

Član broj: 153491
Poruke: 2
*.absolutok.net.



Profil

icon dd drvo -aritmeticki izraz09.08.2007. u 11:34 - pre 168 meseci
Koji je drugi naziv za to drvo?! Rekli su mi dd,mozda ima i neko drugo ime.

Na ulazu imam aritmeticki izraz u postfiksnoj notaciji, npr.
5 3 2 * + (a to je izraz 5+3*2) .Svi operandi su jedan od drugog razdvojeni razmakom. Treba da formiram dd-drvo za ovaj izraz, prikazem ga u postfiksnoj i infiksnoj notaciji i izracunam vrednost. Kako da formiram to drvo? Pomozite mi please.
 
Odgovor na temu

Divjak
Vladimir Divjak
Student

Član broj: 4783
Poruke: 535
77.46.177.*



+1 Profil

icon Re: dd drvo -aritmeticki izraz16.08.2007. u 12:16 - pre 168 meseci
Da li kao operatori mogu da se jave samo ?
Da li u izrazu mogu da se jave zagrade?
And don't be mad at me for crying for humanity,
call it pretensions but I got good intentions,
to keep my sanity, I'm hoping, fuck, there's gotta be
an answer to their strategies and their evil inventions... ~Looptroop
 
Odgovor na temu

Divjak
Vladimir Divjak
Student

Član broj: 4783
Poruke: 535
77.46.177.*



+1 Profil

icon Re: dd drvo -aritmeticki izraz17.08.2007. u 10:19 - pre 168 meseci
Sad sam shvatio da imaš izraz u postfixu, pa je ne moguće da se jave zagrade, a pod pretpostavkom da se javljaju samo pomenute aritmetičke operacije:

1. Definišeš strukturu koja će ti predstavljati Node drveta
2. Inicijalizuješ stack S takvih Node-ova.
3. Radiš po algoritmu:

Code:

while (op = get_next_char(INPUT) != NULL)
        if ( op == operand )
                 n = new(Node)
                 printable_data(n) = op
                 PUSH(n, S)
        else if ( op == operator )
                 n1 = POP(S)
                 n2 = POP(S)
                 n = new(Node)
                 left_child(n) = n1
                 right_child(n) = n2
                 printable_data(n) = op
                 PUSH(n, S)
        end_if
end_while


Na kraju bi na stacku S trebao da ostane samo koren ovog drveta...

Da bi prikazala izraz u postfixu, obiđeš drvo po postorder poretku, a da bi ga prikazala u infixu, obiđeš ga po inorder poretku.
And don't be mad at me for crying for humanity,
call it pretensions but I got good intentions,
to keep my sanity, I'm hoping, fuck, there's gotta be
an answer to their strategies and their evil inventions... ~Looptroop
 
Odgovor na temu

blagoyeblagoye
Blagojevic Milan
Kragujevac

Član broj: 73211
Poruke: 66
*.dynamic.sbb.co.yu.



Profil

icon Re: dd drvo -aritmeticki izraz07.09.2007. u 13:11 - pre 167 meseci
jel mozete ceo kod da postavite ili mi posaljite na mali? :)
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: dd drvo -aritmeticki izraz

[ Pregleda: 4246 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.