catalan相关内容

使用单个堆栈生成排列

任何人都可以解释算法以在仅使用单个堆栈时生成可能的排列,并且推送和弹出是唯一允许的操作.搜索了很多,但没有明确的答案.这种排列的总数也由加泰罗尼亚数字给出.但我没有得到证明.请尽可能解释一下. 谢谢!! 解决方案 这个问题使用了一个输入队列和一个输出队列以及一个栈. 操作是“将一个项目从输入队列推入堆栈"和“将一个项目从堆栈弹出到输出队列". 1 2 3输出输入\/ 例如 ..
发布时间:2022-01-22 12:54:38 其他开发

使用“N"个节点,可能有多少种不同的二叉和二叉搜索树?

对于二叉树:无需考虑树节点值,我只对具有“N"个节点的不同树拓扑感兴趣. 对于二叉搜索树:我们必须考虑树节点值. 解决方案 我推荐这篇文章 由我的同事尼克·帕兰特 (Nick Parlante) 撰写(从他还在斯坦福大学的时候开始).结构不同的二叉树的计数(问题 12)有一个简单的递归解决方案(封闭形式最终是@codeka 的答案已经提到的加泰罗尼亚公式). 我不确定结构不同的 ..
发布时间:2022-01-05 18:20:32 其他开发

查找格式正确的括号的所有组合

这是在和朋友聊天时想到的,我想我会在这里问,因为这是一个有趣的问题,并且希望看到其他人的解决方案. 任务是编写一个函数 Brackets(int n) 来打印 1...n 中 格式良好 括号的所有组合.对于 Brackets(3) 输出将是 ()(()) ()()((())) (()()) (())() ()(()) ()()() 解决方案 尝试了一下.. C# 也是. public ..
发布时间:2022-01-05 09:32:03 C#/.NET

枚举所有完整(标记)二叉树

我正在寻找一种实用的算法来枚举所有完整标记的二叉树. 满二叉树是所有内部节点的度数为3,叶子的度数为1,根的度数为2的树. 带标签的树是所有叶子都有唯一标签的树. 示例: *|\|\* */||\/||\T C D F 解决方案 从评论中可以看出,问题很明显是枚举有根无序标记全二叉树.如这篇论文所述,带有n标签的树的数量是 (2n-3)!! 其中 !! 是 双阶乘函数. ..
发布时间:2021-12-22 08:15:18 Python

计算算法的复杂度以打印所有有效(即正确打开和关闭)的 n 对括号组合

我希望您对我(在 Python 中)实现的这个算法的时间和空间复杂度发表意见,以计算算法的复杂度,以打印 n 对括号的所有有效(即正确打开和关闭)组合(请参阅n 对括号的所有有效组合) def find_par_n(n):s = set(["()"])对于范围内的 i (2, n + 1):set_to_add = set()对于 s 中的 str_:set_temp = 设置()安娜 = 设置 ..
发布时间:2021-10-26 18:48:42 Python

所有可能的数值表达式

一个完全没用的问题:我买了一个数字游戏,它是由两个黑色骰子和5个彩色骰子组成的。两个黑色的数字组成一个2位数的数字,范围从11到66,其余5个是您可以使用的数字,将它们与所有可能的数值表达式结合起来使用以获取目标数字。 例如,黑色40 + 2:目标42 彩色5 3 6 2 4,您可以通过5 3 + 6获得目标* 4 2 +-(使用RPN,因为它可以避免使用方括号)。 现在我想在人 ..
发布时间:2020-10-05 22:54:29 Python

如果节点数为"N",那么可能有多少个不同的二进制和二进制搜索树?

对于二叉树:无需考虑树节点值,我只对具有'N'个节点的不同树拓扑感兴趣. 对于二叉搜索树:我们必须考虑树节点值. 解决方案 我推荐这篇文章由我的同事尼克·帕兰特(Nick Parlante)所写(从他还在斯坦福大学的那一刻起).在结构上不同的二叉树(问题12)的数量具有一个简单的递归解决方案(以封闭形式最终是加泰罗尼亚语公式,@ codeka的答案已经提到过). 我不确定结构不 ..
发布时间:2020-09-21 00:31:00 其他开发

Prolog中的代码生成具有n个节点的所有结构不同的完整二叉树

在Prolog中用n个叶子生成所有结构上不同的完整二叉树。 问题是给定叶数,输出所有不同的完整二叉树。 “完整”在这里意味着任何内部节点都必须有左右两个孩子。 解决方案 要构建所有通过回溯的树木: full_tree(叶子,[LTree,RTree]):- 叶子> 1, TLeaves是Leaves-1, 之间(1,TLeaves,LLeaves), RLeaves是Lea ..
发布时间:2020-06-03 21:59:01 其他开发

用n个叶子生成所有结构上不同的完整二叉树

这是一项作业,我很难想到。请给我一些关于递归和DP解决方案的想法。非常感谢 生成并打印所有结构不同的完整二元 树,其中n片叶子用点括号括起来, “完整”表示所有内部(非叶)节点有 个正好是两个孩子。 例如,有5个不同的完整二叉树 ,每个叶子有4个叶子。 解决方案 U可以使用递归,在第i步上,您考虑树的第i层,并且您选择了哪个节点是根据限制出现在该级别上: -上一级有父 ..
发布时间:2020-06-03 20:11:45 其他开发

带或不带记忆的递归

我在学校做作业以递归计算加泰罗尼亚语的数字: 第一个没有记忆 def catalan_rec(n): res = 0 if n == 0: return 1 else: for i in range (n): res += (catalan_rec(i))*(catalan_rec(n-1-i)) return res 第二个: def ca ..
发布时间:2020-05-08 18:52:01 Python

生成所有可能的树

给定以下数据类型定义: 数据FormTree =空|节点FormTree FormTree派生Show 我想编写一个函数来生成一个包含所有可能的树的无限列表在...之后节点的数量。 下面的代码几乎可以满足我的需求,但它只是通过每次插入额外的节点来降低右侧的树,但我需要它来替代。 allPossibleTrees :: [FormTree] allPoss ..
发布时间:2018-06-04 17:21:42 其他开发

打印山脉算法

/ \ / \ / \ / \ / \\ \\ / \ / \ / \ / \ / \ / \ / \ $ b $ \\ / \ / \ 对于n = 3对的起伏,我有5种可能的方式来绘制这些山脉(我不应该低于x = 0轴)。当我在浏览器的控制台中打印这些输出时,我有以下长的JavaScript代码工作正常。但是,当我尝 ..
发布时间:2018-02-04 11:49:58 前端开发

复发方法:我们如何在大括号上产生所有可能性?

我们如何在大括号上产生所有可能性? N值给了我们,我们必须产生所有的可能性。 示例: 1)如果N == 1,那么只有一个可能性()。 2)如果N == 2,那么可能性是(()),()() $ b $如果N == 3,则可能性为(()),(())(),()()(),()(())... 注意:左右括号应该匹配。我的意思是(对于N == 1是无效的) 我们可以使用重 ..
发布时间:2017-04-03 13:40:20 其他开发