1
私は以下のようなコードを書いています。バイナリ検索ツリーに要素を挿入し、そのレベルを見つける
私は3
のオブジェクトを持つ配列リストを持っています。各オブジェクトがある2 fields 1)digit2)level
各オブジェクトをバイナリ検索ツリーに挿入し、各要素をツリーに挿入した後、そのレベルを見つける必要があります。
コード:
private void greedyMethod(ArrayList<Element> array) {
//it will print the objects in the array list.
System.out.println(array.toString());
array.get(0).setLevel(1);
root = new DNode(array.get(0), null, null);
for (int i = 1; i < array.size(); i++) {
insert(array.get(i));
}
}
private void insert(Element e) {
root = makeBST(root, e);
}
private DNode makeBST(DNode root, Element e) {
if (root == null) {
root = new DNode(e, null, null);
// This will print wrong objects.
System.out.println(root.getElement().toString());
} else if (e.getDigit() < root.getElement().getDigit()) {
e.setDigit(root.getElement().getLevel() + 1);
root.prev = makeBST(root.prev, e);
} else if (e.getDigit() > root.getElement().getDigit()) {
e.setLevel(root.getElement().getLevel() + 1);
root.next = makeBST(root.next, e);
}
System.out.println(averageAccessTime);
return root;
}
私の配列リストは、次のとおりです。
[digit :25 level:0, digit :27 level:0, digit :26 level:0]
が、私は上記のコードで述べたように、ライン: System.out.println(root.getElement().toString());
が間違ったオブジェクトを印刷します(私は間違っている数字または間違ったレベルを意味します!!!!) - >
digit :27 probability: 0.2 level:2
digit :3 probability: 0.1 level:2
私の霧を見つけるのを手伝ってくださいAKE、感謝
はい、あなたは、正しいです:)!あなたの注意のおかげで! – user472221
@ user472221:問題ありません – sje397