关于二叉树和栈

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

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

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

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

用卡兰特数计算:

 

posted @ 2020-08-08 10:11  kalice  阅读(393)  评论(0编辑  收藏  举报