栈的亚特兰数与二叉树的前序中序遍历
@(算法学习)
已经熟知的是二叉树的中序遍历和先序遍历可以唯一确定一棵树。
更有趣的知识点是,以先序遍历序列作为入栈序列,那么出栈序列恰为中序遍历。这样就把两种遍历与栈的性质结合在一起了,且出栈序列数是亚特兰数。设栈大小是n,则共有: 1n+1(2nn) 个。
看一道例题:
(2015)先序序列a,b,c,d的不同二叉树的个数是:14个。
分析:如果没有联系起来规律,不妨枚举出来。
也不是太大的问题,只要思维细致一些,解出来并不难。更何况,四种情况是两两对称的。所以答案必须是个偶数值。红色是容易漏掉的两种情况。特别注意。
如果用规律解就直接是: 14+1(84)=14 个