【发布时间】:2011-10-18 21:52:10
【问题描述】:
假设我正在从文件中读取一行:
{Parent{{ChildA}{ChildB}}}
更复杂的例子:
{Parent{{ChildA{ChildC}{ChildD}}{ChildB{ChildE}{ChildF}}}}
构造树的语法是什么。
{} 括号内的任何名称都是一个节点,如果该括号内还有其他节点(括号),则这些节点是子节点。
我可以使用计数器解析第一个特定示例,但只能找到节点的文本名称。我怎样才能解析这个,以便我可以确定哪些节点是彼此的孩子?我似乎无法将我的想法包裹在我将使用的代码上。我觉得我会使用递归。
任何帮助或建议将不胜感激。
首选 C++。
非常感谢。
【问题讨论】:
-
这看起来像是一个简单的上下文无关文法,因此您可以使用任意数量的标准工具来为此创建词法分析器和解析器。
-
怎么样?对不起,我对此完全陌生。
-
@LearningPython : 你是 C++ 新手,还是比较熟悉这门语言?
-
@ildjarn 我熟悉基础知识(我可以读入一个文件,什么都不能读),但我之前从未将任何东西解析成树形数据结构。我熟悉 Python 等其他语言的数据结构,但不熟悉这种递归或解析。
-
@Mooing Duck 是的,我不希望它为我完成,但任何能将我推向正确方向的建议将不胜感激。
标签: c++ parsing data-structures tree