【发布时间】:2019-12-26 19:18:22
【问题描述】:
我必须找到树的高度并从平衡的括号中找到保护编号(或只是为了生成一棵树)。
例如:
()()()() 像列表一样创建树,高度为 3。
我不知道如何将括号转换为树。我找到了一些“答案”:
http://www.cs.utsa.edu/~wagner/knuth/fasc4a.pdf(第二页包含具有 4 个节点的树的所有示例)
段落 - 二叉树、森林、非交叉对:
https://sahandsaba.com/interview-question-generating-all-balanced-parentheses.html
但是,我仍然不知道如何从这样定义的括号中创建一棵树。我有一些印象,在 Knuth 中,作者将其视为显而易见的事情。
我错过了什么还是没那么简单?
有必要先造林再造二叉树吗?
【问题讨论】:
-
您不需要创建树来计算高度。
()()()()用什么逻辑表示高度为 3 的树? -
knuth 中的第二页(或纯 pdf 中的 8 页)包含具有 4 个节点的树的所有示例。
-
包含外部链接的引用以澄清问题仍然是一个好主意。链接可能会在稍后消失,然后您的问题就没有意义了。
-
什么是“保护号”?
-
一棵树的保护数是从根到叶子的最短路径的长度。