Witam,
prosiłbym o pomoc w "rozkminie" zadania lub ewentualnej pomocy w napisaniu programika.
mam taki problem dostaję np. wyrażenie 2+3*5-3 i muszę sprawdzić jej poprawność.
Stworzyłem taką strukturę:
typedef struct e{
char symbol;
double x;
struct e * lewy;
struct e * prawy;
} drzewo;
Więc na podstawie struktury drzewo będzie wyglądać tak (http://upload.wikimedia.org/wikipedia/commons/d/db/Parsing-example.png):
+
2 |
---|
* |
3 |
5 |
3 |
Moim zadaniem jest sprawdzenie wyrażenie po kolei i przepisanie go do drzewa, a następnie sprawdzenie czy liśćmi drzewa są liczby, to wiem. Ale jak mam sprawdzać to wyrażenie? Po pierwszym napotkaniu znaku '+' badz '-' staje się on głównym korzeniem, następnie mam każdy taki znak układać w drzewa następnie przechodzić do znaków '*' i '/' a później przypisywać do drzewa liczby ?
Za wszelką pomoc z góry dziękuję.