如何使用ABAP面向对象建立通用树形数据结构

3

我希望在ABAP中构建一种树形数据结构。我的主要需求是能够使用通用对象作为树的节点。

在Java中,它可能看起来像这样:

public class MyTree<? extends TreeNode> {
(...)
}

我目前的方法是定义一个类TreeNode,这个类是树中所有可能节点的超类。

在ABAP OO中有更优雅的实现泛型类型的方法吗?或者SAP中是否有我不知道的数据结构?

1个回答

1

SORTED TABLE 上的大多数操作都具有二叉树的性能特征。我非常确定排序表的内部实现是某种二叉树(或者是跳表)。

在我的实习期间,我使用 ABAP 对象重新创建了一些典型的数据结构,如链表或二叉树,并将它们的性能与等效的本地 TABLE 版本进行了比较 - 本地版本通常具有相同的复杂度类,但它们总是执行得更快。除非您有一些需要使用异乎寻常的数据结构的特殊用例,否则您应该尝试使用 TABLESORTED TABLEHASHED TABLE


我需要处理以树形模型组织的数据,即数据以父子方式组织。因此,为了保持我的代码整洁和易读,我想实现类似于树的东西... - user212926
1
我同意。使用一个带有NODE和PARENT字段的内部表(例如)来建模你的树结构。从性能角度来看,这样做更好,并且你很可能能够实现你想要的效果。 - mydoghasworms
当您的数据具有树状结构且搜索性能不是非常重要时,将其存储在节点对象中可能是一个可行的选择。但请记住,这些将很难存储在数据库中,因为在树节点和表行之间进行序列化和反序列化可能会变得复杂。 - Philipp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接