0
バイナリ検索ツリーでアイテムを検索していました。私はそれが 再帰の代わりに反復を使用するように検索()メソッドを書き換えたいバイナリ検索ツリーでの検索で再帰の代わりに繰り返しを使用
public class Node {
public int key;
public Object data;
public Node left;
public Node right;
}
public static Object search(Node root, int key) {
if (root == null)
return null;
else if (key == root.key)
return root.data;
else if (key < root.key)
return searchTree(root.left, key);
else
return searchTree(root.right, key);
}
:私はこのコードを発見しました。私はこのようにしました:
public static Object search(Node root, int key) {
if (root == null)
return null;
else if (key == root.key)
return root.data;
else if (key < root.key) {
Iterator iter = root.left.iterator();
while (iter.hasNext()) {
object item = iter.next();
if(iter.key.equals(key)) {
return item.data;
}
}
} else {
Iterator iter = root.right.iterator();
while (iter.hasNext()) {
object item = iter.next();
if(iter.key.equals(key)) {
return item.data;
}
}
}
}
私は正しくやっていますか?
おかげ
コンパイルは完了しましたか?反復を使用することは、反復子インターフェイスを使用することを意味しません。 – Eran
私はコンパイルを行うことができるようにすべてのコードを実装していません...私はちょうど検索メソッドのコードを持っています..私は正しいと思いますか?ありがとう – Joe
私はこのコード行を取得しません - 'Iterator iter = root.left.iterator();'。 'Node'オブジェクトからイテレータを得た方法。そして、あなたが将来実装するなら、次のイテレータは何を返しますか –