专栏名称: 开点工作室
计算机专业书籍编写、IT企业面试笔试试题分析、计算机教育培训、技术文章、工具资源、精选课程、热点资讯。
目录
相关文章推荐
OSC开源社区  ·  苹果开源编程语言Swift官网全新改版 ·  2 天前  
OSC开源社区  ·  虚幻引擎5.6正式发布 ·  3 天前  
OSC开源社区  ·  pg_mooncake:PostgreSQL ... ·  3 天前  
程序员的那些事  ·  AI 编程工具 Windsurf 突遭 ... ·  3 天前  
稀土掘金技术社区  ·  协程中使用 ... ·  4 天前  
51好读  ›  专栏  ›  开点工作室

解析“数据结构”课程中出现的Catalan数

开点工作室  · 公众号  · 程序员  · 2017-04-20 15:29

正文

请到「今天看啥」查看全文


1. 问题描述


学生在学习数据结构课程时,会遇到或思考下述三个问题:


问题一: 编号为 1 2 …… n n 辆火车顺序开进栈式结构的站台,问有多少种不同的出站的方式?


问题二: 有多少棵不同的二叉树,前序序列同为 a 1 a 2 …… a n


问题三: n 个结点的不同形状的二叉树有多少棵?


针对初学者学习时的困惑,作者将多年的教学体会总结如下,供学习者参考.

2.问题解析

这三个不同问题看似没有关联,但它们的解是同一个,即著名的 Catalan

Catalan 数是组合数学中一个常出现在各种计数问题的数列,以比列时的数学家欧仁 . 查理 . 卡特兰( 1814-1894 )的名字来命名。

现对上述数据结构中的三种计数问题解析如下:

问题一 解析:为方便理解,设 n=4 ,按照栈的进、出栈限制(后进先出)及编号为 i







请到「今天看啥」查看全文