2012-10-10 2 views
2

ABAP에서 트리 데이터 구조를 작성하려고합니다. 핵심 요구 사항은 트리의 노드로 일반 객체를 사용할 수 있다는 것입니다.ABAP OO를 사용하여 일반 트리 데이터 구조를 작성하는 방법

나는 자바는 다음과 같이 보일 것입니다 :

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

내 현재의 접근 방식은 나무 내부에있는 모든 노드의 슈퍼 클래스입니다 클래스 TreeNode를 정의하는 것입니다.

ABAP OO로 제네릭 형식을 구현하는 좀 더 우아한 방법이 있습니까? 또는 내가 모르는 SAP와 함께 제공되는 데이터 구조가있을 수 있습니까?

답변

1

SORTED TABLE의 대부분의 작업에는 이진 트리와 같은 성능 특성이 있습니다. 필자는 정렬 된 테이블의 내부 구현이 이진 트리의 맛 (또는 skip-lists)임을 확신합니다.

인턴쉽 기간 동안 ABAP 객체를 사용하여 링크 된 목록이나 이진 트리와 같은 몇 가지 일반적인 데이터 구조를 재현하고 성능을 동등한 기본 TABLE 스타일과 비교했습니다. 기본 클래스는 일반적으로 동일한 복잡성 클래스를 가졌지 만 항상 더 빠르게 수행했습니다. 이국적인 데이터 구조가 필요한 매우 특별한 유스 케이스가없는 한 TABLE, SORTED TABLE 또는 HASHED TABLE으로 작업해야합니다.

+0

모델과 같은 트리 구조로 구성된 데이터로 작업해야합니다. 즉, 데이터는 부모 자식 방식으로 구성됩니다. 그래서 나는 코드를 깨끗하고 읽기 쉽게 유지하려고 생각했다. 나는 나무 같은 것을 구현했다 ... –

+0

나는 동의한다. NODE 및 PARENT 필드가있는 내부 테이블을 사용하여 트리를 모델링하십시오. 그것은 성능면에서 현명하며 여러분이 원하는 것을 성취 할 수있을 것입니다. – mydoghasworms

+0

데이터가 트리 구조를 가지며 트리를 검색하는 것이 그리 중요하지 않은 경우이를 노드 객체에 저장하는 것이 실용적인 선택 일 수 있습니다. 그러나 트리 노드와 트리 노드 사이의 직렬화 및 비 직렬화가 복잡해지기 때문에 이들을 데이터베이스에 저장하기가 어려울 수 있습니다. – Philipp

관련 문제