Witam,
Mam problem z obliczaniem wyrażeń arytmetycznych z wykorzystaniem drzewa. Nie wiem czy do końca dobrze rozumiem jak to trzeba zrobić więc mam nadzieję że mi podpowiecie jeśli w którymś kroku mam błąd.
A więc myślę to zrobić to tak:
1.Za pomocą stosu zamienić podane przez użytkownika wyrażenie infiksowe na wyrażenie prefiksowe i zapisuje to wyrażenie do tablicy.
2.Następnie tworzę drzewo i czytam wyrażenie umieszczone w tablicy. Robię dokładnie to co jest opisane na stronie:
http://eduinf.waw.pl/inf/alg/001_search/0118.php
3.Mam już wypełenione drzewo więc teraz pora na obliczenie wyrażenia,przechodzę przez drzewo i:
jeśli trafie na operator wykonuje działanie lewy syn (operator) prawy syn z tym że jeśli któryś z synów jest operatorem to rekurencyjnie wykonuje to samo czyli wchodzę wgłąb drzewa i wykonuje operacje na lewym i prawym synu zwracając wynik operacji.
Czy jest to dobry sposób na rozwiązanie tego zadania?Piszę w języku C.
Dziękuje za wszelkie komentarze.