void infix_print(node *cur, bool p = false) { // (a + b) * c + 7 if (p) cout << "("; int pr = prio[cur-> opr]; if (cur-> l) { int lo = prio[cur-> l-> opr]; infix_print(cur-> l, lo < pr || (lo == pr && asso[cur-> opr] == 'r')); } cur-> print(); if (cur-> r) { int ro = prio[cur-> r-> opr]; infix_print(cur-> r, ro < pr || (ro == pr && asso[cur-> opr] == 'l')); } if (p) cout << ")"; }