1
A
回答
6
添加到什麼馬修已經說過,它看起來像下面的模塊將是合適的:
4
我真的不明白爲什麼你想要它是「源代碼」而不是perl庫,但你可以下載任何CPAN模塊的源代碼。
我沒有使用它,但Tree看起來滿足您的要求。
3
根據你所需要的樹結構,您可能不需要任何預先構建的實現。 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, @$children
更改爲push @queue, @$children
)
所以,根據你想要在樹上執行什麼操作,最簡單的事情可能就是使用Perl對數組和數組引用的內置支持。
相關問題
- 1. C++ ntree實體樹實現
- 2. Java中是否有參數樹實現?
- 3. 是否有vEB樹的C++實現?
- 4. Dictionary.Equals()是否有一個實現?
- 5. PHP是否有一個stringprep實現?
- 6. 是否有一個dojo實現jSignature
- 7. 是否有perl實施SHA256withRSA
- 8. 如何確定一個對象是否在Perl中實現了一個方法?
- 9. 在java中實現一個樹類,從地面實現一個樹類
- 10. 是否有一個Queue(PriorityQueue)實現也是一個Set?
- 11. Perl中是否有很好的定時器實現?
- 12. 在.NET 4中是否有二叉搜索樹實現?
- 13. C++標準庫中是否有任何紅黑樹或avl樹實現?
- 14. 是否有一個庫在python中實現RangeDict?
- 15. 在CPAN中是否有一個使用現代Perl技術實現基於REST的API的模塊示例?
- 16. 如何在Swing中實現分層的「選擇樹」? (或者:是否有現有的實現?)
- 17. Java中樹的現有實現?
- 18. Java中的樹實現是否持有隻保留C中的地址的整個下一個節點v/s
- 19. 是否有SqlGeometryBuilder的實現?
- 20. Android是否有Erlang實現?
- 21. 是否有PHP Fleiss'Kappa實現?
- 22. C中的一個好的開源B樹實現是什麼?
- 23. 紅黑樹C#的這個實現是否正確?
- 24. Ruby中是否有包實現?
- 25. C中是否有任何NFS實現?
- 26. python中是否有libjpeg的實現?
- 27. java中是否有LinkedTreeMap實現?
- 28. Struts中是否有Spring HandlerAdapter實現?
- 29. 是否有更現代的CORBA實現?
- 30. 東京內閣是否支持內存中的B +樹實現?