Witam. Mam do skonstruowania drzewo które będzie przetrzymywać wyrażenia logiczne typu: AND AND T F T. Nie mam pomysłu w jaki sposób zrealizować funkcję wstawiania tych wyrażeń na te drzewo. Moja aktualna funkcja wstawiania elementu nie działa dla dłuższych wyrażeń logicznych, dodam ze mam napisaną już funkcję która rozbija wyrażenie i wstawia do parametru nowawartość kolejne instrukcje:AND,AND,T,F,T. Bardzo prosiłabym o jakąś pomoc. Z góry dziękuje.
struct drzewo{
bool typ; //1-operator, 0-operand
char dana;
drzewo* rodzic;
drzewo* lewy;
drzewo* prawy;
drzewo();
drzewo(char d) //konstruktor dla danej
{
dana=d;
lewy=NULL;
prawy=NULL;
}
};
void wsadzelement(drzewo *&korzen, char nowawartosc, bool operator)
{
if(korzen==NULL)
{
korzen=new drzewo(nowawartosc);
korzen->typ=operator;
return;
}
if(korzen->lewy!=NULL)
{
if(korzen->lewy->typ)
wsadzelement(korzen->lewy,nowawartosc,operator);
}
if(korzen->prawy!=NULL)
{
if(korzen->prawy->typ)
wsadzelement(korzen->prawy,nowawartosc,operator);
}
if(korzen->lewy==NULL)
wsadzelement(korzen->lewy,nowawartosc,operator);
else if(korzen->prawy==NULL)
wsadzelement(korzen->prawy,nowawartosc,operator);
}