/ / N-ary vyhľadávací strom v jave s porovnateľným userObject? - java, hľadanie, n-ary-tree

N-ary vyhľadávací strom v jave s porovnateľným userObject? - java, hľadanie, n-ary-tree

Takže povedzme, že budu budovať strom pomocou javaxu.swing.tree.DefaultMutableTreeNode a pridám N deti do určitého uzla. Chcem, aby deti boli v určitom poradí (založené na porovnateľnom / vlastnom komparátorovi) ako vyhľadávací strom, aj keď ich nevkladám do poriadku, napríklad:

node.insert(child2);
node.insert(child3);
node.insert(child1);

Ale DefaultMutableTreeNode nevykonáva žiadny druhtakýmto triedením. V mojom konkrétnom prípade som dokonca poznal požadovaný index dcérskych uzlov v rodičovskom poli, ale ja som skúšal DefaultMutableTreeNode.insert a dostal veľa ArrayIndexOutOfBoundsExceptions.

Môže niekto odporučiť knižnicu, ktorá robí to, čo potrebujem? Alebo budem musieť napísať vyhľadávací strom ako ja sám?

odpovede:

1 pre odpoveď č. 1

Zvyčajne vkladáte uzly do stromu tak, aby zostal pre niektoré zoradený traversal order, To závisí od topológie stromu. Môžete získať niektoré implementačné nápady Ako používať stromy, vytvoriť dátový model, Najmä, "TreeModel rozhranieakceptuje akýkoľvek objekt ako uzol stromu. Nevyžaduje, aby uzly boli reprezentované objektmi DefaultMutableTreeNode alebo dokonca, že uzly implementujú rozhranie TreeNode. "