关于二叉树和栈

一道题目:已知了二叉树的先序遍历序列求该二叉树的个数。

刚开始,看了半天不知道说什么,于是写了一遍先序遍历的代码:

while(p||!stack.empty()){
    if(p){
        visit(p);
        push(stack,p);
        p=p->lchild;
    }
    else{
        pop(stack,p);
        p=p->rchild;
    }
}

  越看越不对劲,先序遍历序列就是入栈序列,问二叉树的个数不就是问有多少种出栈方式?

用卡兰特数计算:

原文地址:https://www.cnblogs.com/kalicener/p/13456591.html