一道题目:已知了二叉树的先序遍历序列求该二叉树的个数。
刚开始,看了半天不知道说什么,于是写了一遍先序遍历的代码:
while(p||!stack.empty()){ if(p){ visit(p); push(stack,p); p=p->lchild; } else{ pop(stack,p); p=p->rchild; } }
越看越不对劲,先序遍历序列就是入栈序列,问二叉树的个数不就是问有多少种出栈方式?
用卡兰特数计算:
一道题目:已知了二叉树的先序遍历序列求该二叉树的个数。
刚开始,看了半天不知道说什么,于是写了一遍先序遍历的代码:
while(p||!stack.empty()){ if(p){ visit(p); push(stack,p); p=p->lchild; } else{ pop(stack,p); p=p->rchild; } }
越看越不对劲,先序遍历序列就是入栈序列,问二叉树的个数不就是问有多少种出栈方式?
用卡兰特数计算: