저는 Perl 스크립트를 작성 중이며 n 트리 트리 데이터 구조를 사용하고 싶습니다.Perl에 n- 트리 트리 구현이 있습니까?
(Perl 라이브러리의 일부가 아닌) 소스 코드로 사용할 수있는 좋은 구현이 있습니까?
저는 Perl 스크립트를 작성 중이며 n 트리 트리 데이터 구조를 사용하고 싶습니다.Perl에 n- 트리 트리 구현이 있습니까?
(Perl 라이브러리의 일부가 아닌) 소스 코드로 사용할 수있는 좋은 구현이 있습니까?
마태 복음 이미 말에 추가, 그것은 본다 사전 구축 된 구현. Perl은 이미 배열 참조 배열을 사용하여 이들을 지원합니다. 예를 들어
,
t
/ \
a d
/\ /\
b c e f
다음 펄 코드로 표현 될 수있는이 나무의 간단한 표현 : 제 소자 (: 여기
$tree = [ t => [ a => [ b => [], c => [] ]
d => [ e => [], f => [] ] ] ];
는 트리의 표현은 중첩 쌍이고 이 경우 문자), 그 요소의 자식을 나타내는 익명의 배열 참조를 반환합니다. =>
은 쉼표 왼쪽에있는 토큰 주위에 따옴표를 넣지 않아도되는 단일 단어 인 경우 Perl의 멋진 쉼표입니다. 위의 코드는 이렇게 기록 된 수 :
sub elements {
my $tree = shift;
my @elements;
my @queue = @$tree;
while (@queue) {
my $element = shift @queue;
my $children = shift @queue;
push @elements, $element;
unshift @queue, @$children;
}
return @elements;
}
@elements = elements($tree) # qw(t a b c d e f)
(첫번째 폭의 경우, push @queue, @$children
에 선 unshift @queue, @$children
을 변경 : 여기
$tree = [ 't', [ 'a' , [ 'b' , [], 'c' , [] ]
'd' , [ 'e' , [], 'f' , [] ] ] ];
트리의 모든 요소의 단순 깊이 우선 축적이다)
따라서 트리에서 수행 할 작업에 따라 가장 간단한 것은 Perl의 기본 배열 및 배열 참조 지원을 사용하는 것일 수 있습니다.
필자가 perl 라이브러리가 아닌 "소스"가 필요한 이유를 이해하지 못했지만 CPAN 모듈의 소스를 다운로드 할 수 있습니다.
아직 사용하지 않았지만 Tree은 사용자의 요구 사항을 충족하는 것으로 보입니다. 당신이 트리 구조를 필요에 따라
, 당신이 필요하지 않을 수도 있습니다 : 다음과 같은 모듈이 적합 할 것 같은