#include typedef char Ttree[100]; char cmptree(char* t1, char* t2) { // Porovná stromy, vrací $-1$ pro $t1 < t2$, 0 pro $t1 = t2$, 1 pro $t1 > t2$ char lev; lev=0; do { if (*t1 < *t2) return -1; else if (*t1 > *t2) return 1; else if (*t1 == '(') lev++; if (*t1 == ')') lev--; t1++;t2++; } while (lev != 0); return 0; } void copytree(char* t1, char* t2) { // Zkopíruje strom $t2$ na pozici $t1$ char lev; lev=0; do { if (*t2 == '(') lev++; if (*t2 == ')') lev--; *t1=*t2; t1++;t2++; } while (lev != 0); } Ttree tmptree; char* normalize(char* t) { // Normalizuje strom $t$ a po skončení ukazuje za jeho konec char *t1,*t2; if (*t=='0') return t+1; t1=t+1; t2=normalize(t1)+1; t=normalize(t2)+1; if (cmptree(t1,t2)==-1) { // je-li $t1