gpt4 book ai didi

Java - 链接列表泛型子列表

转载 作者:行者123 更新时间:2023-12-01 13:26:31 25 4
gpt4 key购买 nike

所以我没有太多在java中使用链表的经验,并且我得到了这个需要在链表上存储值的作业。总而言之,就是创建处理 Lisp 表达式的类。特别是,它从表达式创建基于引用的链表,并实现许多方法来对列表执行操作。正如我的教授所提供的,他使用标记器来打破表达式。示例:

        parse("(+ 3 5 ( 23.2 -1a 1/2 \"abc\" ) ) "); 

我的任务是将其添加到一个简单的链接列表中,但我的问题是,对于每个左括号都有一个新列表,其中的括号是一个子列表。

对于这种情况:(4 * (45 + 3) - (7/5))


(45 + 3) 是子列表或列表。
(7/5) 是子列表或列表
4是整数
*符号
45整数
+符号
3个整数
-符号
7/5比率


我的教授告诉我:“因此,子列表或列表必须与完整列表执行相同的操作,这意味着识别器过程可以是递归的。”

我有一个 Lisp 泛型类、一个 LinkedList 类和一个用于将表达式分解为标记的类。

有什么想法吗?

最佳答案

我想你想要的是 Composite Pattern执行。当您想要以类似方式处理两种类型时,您可以创建复合类型。解析器通常具有节点类和叶类,或者复合表达式和终结表达式。如果两者都实现相同的接口(interface),那么您可以轻松地创建一个描述解析过程的列表,因为列表中的每个节点都可以是其他节点的集合。所以你的直觉是正确的,你正在处理一棵树。看起来像列表的树通常是复合树。

关于Java - 链接列表泛型子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com