#include #include #include "stabla_arit.h" CVOR* kreiraj_cvor(int v, char op){ CVOR *novi = malloc(sizeof(CVOR)); if(novi==NULL) exit(EXIT_FAILURE); novi->v = v; novi->op = op; novi->l = NULL; novi->d = NULL; return novi; } void ispisi(CVOR *koren){ if(koren==NULL) return; ispisi(koren->l); if(koren->op=='b') printf("%d\n",koren->v); else printf("%c\n",koren->op); ispisi(koren->d); } CVOR *obrisi(CVOR *koren){ if(koren==NULL) return NULL; koren->l = obrisi(koren->l); koren->d = obrisi(koren->d); free(koren); return NULL; } CVOR *ucitaj_izraz(){ char temp[100]; CVOR *koren; scanf("%s",temp); if(strcmp(temp,"+")==0 || strcmp(temp,"*")==0){ koren = kreiraj_cvor(0,temp[0]); koren->l = ucitaj_izraz(); koren->d = ucitaj_izraz(); }else{ koren = kreiraj_cvor(atoi(temp),'b'); } } int vrednost(CVOR *koren){ if(koren->op=='b') return koren->v; if(koren->op=='+') return vrednost(koren->l)+vrednost(koren->d); else return vrednost(koren->l)*vrednost(koren->d); }