Zadanie 1

Proszę napisać funkcję w C która odczyta ze standartowego wejscia ciąg znaków tworzący wyrażenie arytmetyczne lub instrukcję podstawienia i zbuduje odpowiadające mu drzewo rozbioru. Zakładamy że wyrażenie arytmetyczne używa tylko '+', '-' i '*' jako operatory i że każde podwyrażenie pojawiające się jako argument operatora jest ujęte w nawiasy. Ponadto '-' można tylko używać jako operator jednoargumentowy. Dopuszczamy tylko jednoliterowe nazwy zmiennych i jednocyfrowe stałe. Instrukcje podstawienia mają postać nazwy zmiennej po której występuje znak '=' po którym występuje wyrażenie arytmetyczne, np:

x=y+4
Dla uproszczenia nie pozwalamy na spacje na wejściu (wyrażenia lub instrukcja kończy się znakiem nowej linii). Jako węzly drzewa prosze używać następującą strukturę w C:
struct drzewo {
    char nazwa;
    struct drzewo * lewe;
    struct drzewo * prawe;
};
Funkcja ma zaalokować węzły drzewa przy pomocy 'malloc'.

Zadanie 2

Napisać funkcję w C która mając dane drzewo takie jak produkowane w zadaniu 1 i tablicę reprezentującą wartości zmiennych obliczy wartość odpowiedniego wyrażenia (zakładamy że wartości pośrednie można reprezentować za pomocą 'int' w C). Dla instrukcji podstawienia dodatkowo należy zmienić wartość zmiennej na nową. Przy pomocy tej funkcji i funkcji z zadnia 1 zrealizować prosty kalkulator i przetestowac go.