本文共 589 字,大约阅读时间需要 1 分钟。
6Push 1Push 2Push 3PopPopPush 4PopPopPush 5Push 6PopPop
//找到的规律是://①第一个push的一定是根//②对于所有的push:如果它的上一个操作为push,那么当前这个点就是上一个push的左儿子//如果是pop那么当前点就是上一个pop的点的右儿子int main(){ scanf("%d",&n); memset(l,-1,sizeof l);memset(r,-1,sizeof r); cin>>last;cin>>id; root = id; p[top++] = root; for(int i=1;i<=2*n-1;i++){ cin>>now; if(now=="Push"){ scanf("%d",&p[top++]); if(last=="Pop") r[id] = p[top-1]; else l[id] = p[top-1]; id = p[top-1]; }else{ id = p[--top]; } last = now; }}
转载地址:http://gllzi.baihongyu.com/