Java'da bir Crit-bit ağacını temsil etmek için yerleşik bir veri yapısı var mı? Veya bu işlevselliği sağlayabilecek herhangi bir kütüphane var mı? Basit bir şekilde uygulanabiliyorsa kısa kodu bir cevap olarak kabul ediyorum.Java Kritik Bit Ağaçları
6
A
cevap
5
radixtree java projesini denediniz mi?
Bunun gibi aradığınız yapısını bulabilirsiniz:
- RadixTree sınıf
(özü):
/**
* This interface represent the operation of a radix tree. A radix tree,
* Patricia trie/tree, or crit bit tree is a specialized set data structure
* based on the trie that is used to store a set of strings. In contrast with a
* regular trie, the edges of a Patricia trie are labelled with sequences of
* characters rather than with single characters. These can be strings of
* characters, bit strings such as integers or IP addresses, or generally
* arbitrary sequences of objects in lexicographical order. Sometimes the names
* radix tree and crit bit tree are only applied to trees storing integers and
* Patricia trie is retained for more general inputs, but the structure works
* the same way in all cases.
*
* @author Tahseen Ur Rehman
* email: tahseen.ur.rehman {at.spam.me.not} gmail.com
*/
public interface RadixTree<T> {
/**
* Insert a new string key and its value to the tree.
*
* @param key
* The string key of the object
* @param value
* The value that need to be stored corresponding to the given
* key.
* @throws DuplicateKeyException
*/
public void insert(String key, T value) throws DuplicateKeyException;
- RadixTreeNode sınıfı
(özü):
/**
* Represents a node of a Radix tree {@link RadixTreeImpl}
*
* @author Tahseen Ur Rehman
* @email tahseen.ur.rehman {at.spam.me.not} gmail.com
* @param <T>
*/
class RadixTreeNode<T> {
private String key;
private List<RadixTreeNode<T>> childern;
private boolean real;
private T value;
/**
* intailize the fields with default values to avoid null reference checks
* all over the places
*/
public RadixTreeNode() {
key = "";
childern = new ArrayList<RadixTreeNode<T>>();
real = false;
}
2
Diğer bir seçenek rkapsi en patricia-trie, ya da sen kendin üzerinde kesmek anlamına biraz daha az karmaşık bir şey arıyorsanız, onun simple-patricia-trie deneyebilirsiniz.
Ayrıca, alan verimliliğine odaklanmış bir functional-critbit uygulaması var (performansı da iyi olsa da). Hem değişebilen hem de değişmez tatlarda gelir.
0
gradle üzerinde concurrent-trees
bağlantılar:
compile 'com.googlecode.concurrent-trees:concurrent-trees:2.4.0'
İlgili konular
- 1. Java bit düzeyinde çalışma
- 2. Java performansı 64 bit
- 3. VS2008'de ağaçları görüntüleme
- 4. Ağaçları ANTLR'de anlama
- 5. Java 64 bit JDK sorusu
- 6. Kritik t değerleri R
- 7. MPI'da kritik bölüm?
- 8. N-ary ağaçları C
- 9. ağaçları etiketleme haskell
- 10. Ağırlıklı Karar Ağaçları Entropy
- 11. Yapı bağımlılığı ağaçları
- 12. ruby'de ikili arama ağaçları
- 13. Yerel değişken ve ifade ağaçları
- 14. R H2O, 32 bit java ile
- 15. Java 64 bit JDBC-ODBC sürücü sorunları
- 16. Java 7 Mac'te 32 bit olarak çalıştırılacak
- 17. Java int her zaman 32 bit mi?
- 18. Java Web Start ve 64 Bit JVM
- 19. Bit Bit çevirme
- 20. JRE mimarisini belirleme 32 bit vs 64 bit
- 21. Pencereleri bağlama konuları. Kritik bölümler çok yavaştır
- 22. Kritik Bölümler ve döndürülen değerler C++
- 23. Boost ile nasıl kritik bir bölüm oluştururum?
- 24. GraphicsMagick CgBI bilinmeyen kritik bir yığın
- 25. Node.js, kritik iş uygulamaları için hazır mı?
- 26. Kritik haritalama Json arabirim ayrıştırma tarihi
- 27. Aralık, segment, fenwick ağaçları aynı mıdır?
- 28. İfade Ağaçları ve Bir Delege İçeren
- 29. İfade ağaçları - int32'ye gereksiz dönüştürme
- 30. MYSQL ve Kapanış Tablo Ağaçları Derinliği
' T dökme (Obje o)' mr rahatsız eder. derleyici. Eclipse kullanarak inşa merak ediyor musunuz? Eclipse'in derleyicisi böyle şeylerden kurtulmanızı sağlar. –
alphazero
Evet, tutulma bazen beni bunun üzerinde ısırıyor, ancak mevcut kafaya 0.0.4 düz javac ile ince bir derleme yapmalı. Böyle bir döküm yöntemi, kontrol edilmeyen oyuncu uyarılarını bir noktaya ayırmak için oldukça yaygın bir yöntemdir ve hiçbir zaman [bu] gibi küçük sorunlardan daha fazla bir şey yapmadım (https://github.com/jfager/functional-critbit/ Kullandığımda/6bbc21fee45b0bef9fff1eae1945c4eec35dc517). Gördüğünüz şey hakkında daha fazla ayrıntı içeren bir github sorunu açabiliyorsanız bunu takdir ediyorum. Rkapsi'nin uygulanması için – jfager
https://github.com/jfager/functional-critbit/issues/1 – alphazero