質問

書いPerlスクリプト及びn-ary木データ構造です。

ある実装ではソースコードなのPerl図書館)?

役に立ちましたか?

解決

加えマシューといえるのでは、以下に示すようになりますモジュールが最適です:

ツ::Nary
ツ::プ
ツリー

他のヒント

んですが、なぜいた"源泉"としてあるのではなく、perl図書館が、ダウンロードできますの他CPANモジュールです。

しんので、 ツリー うに記入の方法で購入できます。

によっては必要なツリー構造のしない場合があります。必要とされます。Perlで応援していくという考え方を用い配列のarrayrefs.

例えば、簡単な表現でこのツリー

             t
           /   \
          a     d
         / \   / \
        b   c e   f

これにより、以下のPerlコード:

$tree = [ t => [ a => [ b => [], c => [] ]
                 d => [ e => [], f => [] ] ] ];

ここでは、ツリーの表現は、入れ子のペア:最初の要素(この場合、文字)、匿名の配列参照を表す、子供の要素となります。ご注意 => で派手ではコンマPerlを免除することを入れて引用符には、トークンの左側にカンマが、一言。上記のコードが書き込まれている。

$tree = [ 't', [ 'a' , [ 'b' , [], 'c' , [] ]
                 'd' , [ 'e' , [], 'f' , [] ] ] ];

このシンプルな深さの最初のアキュムレータの全ての要素については、木:

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)

(広さは最初に変更しま unshift @queue, @$childrenpush @queue, @$children)

なので、によってどの業務を実行する上でおり、最も単純なものであるだけで使用Perlの配列をサポートおよび配列の参照です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top