Kezdőoldal » Számítástechnika » Programozás » Hogyan is kellene ezt megcsina...

Hogyan is kellene ezt megcsinalni?

Figyelt kérdés

Irjatok egy programot, matematikai mulveleteket kiszamolasara, ugy hogy az ertekek,

es a muveltek is ugyan abban a binaris faban legyenek tarolva. C-ben vagy C++-ban;

Pelda itt:

[link]

Nem varok kesz megoldast, csak otleteket, utmutatast segitseget, a megoldasban. Elore is koszonom :)



#program #binaris fa
2015. febr. 2. 19:05
 1/1 anonim ***** válasza:

A lényeg az lenne hogy mindig megkeresed a legkisebb prioritású műveletet a kifejezésben, majd kettébontod a műveletnél a kifejezést, így két ágat formálva a műveletnek.


A legkisebb prioritású műveletet úgy találod meg, hogy számolod a zárójel-mélységet, és a 0 mélységű műveletek közül az utolsó legkisebb prioritású művelet kell neked.


Prioritások a következők: (* == /) > (+ == -)


A példád: (25+1)/(60-40)+2*30-777

A 0 mélységű műveletek:

- 2. művelet (osztás)

- 4. művelet (összeadás)

- 5. művelet (szorzás)

- 6. művelet (kivonás)


Ezek közül az összeadásnak és a kivonásnak kisebb a prioritása, és a kivonás van hátrébb a kettő közül.


Ha nincs 0 zárójel-mélységű művelet, akkor az azt jelenti, hogy az egész kifejezés egy nagy zárójelben van, törölni kell a külső zárójelet.


A példádban ezért a kivonás a fa gyökere, és a két ág a következő:

(25+1)/(60-40)+2*30

777


Itt hasonló módon megkeressük a legkisebb prioritású műveletet ami a 4. művelet lesz (összeadás) és újra szétbontjuk:

(25+1)/(60-40)

2*30


A 777 egy levél, azzal nem foglalkozunk már.

Ezt addig kell folytatni amíg már csak számok lesznek a levelek. Arra vigyázni kell hogy például a "(25+1)" nem tartalmaz 0 mélységű műveletet, ezért törölni kell a külső zárójelet amikor eléred és újra próbálkozni.

2015. febr. 2. 21:53
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!