省流:C++逗号运算符右结合,调用函数时也一样
做题 ing...(P1175)诶等下 #2 到 #10 全 WA 了?而且都显示 line 2 有问题
看题解,测了一组
(2+3)*(4+5)
第一行2 3 + 4 5 + *
没问题嘛……等等怎么先算的 4+5 ?!
最后发现是这个:
tr[x]=node(s[p0],dfs(l,p0-1),dfs(p0+1,r));
这里会先调用右边的 dfs,导致后序遍历的“左-右-根”变成“右-左-根”(注:node(int,int,int)
是结构体构造函数)
改完 AC,遂写此记,请同志们小心逗号运算符!!!