このデータ構造の問題を解決するにはちょっと指示が必要です。私はBSTのadd()メソッドを作成する必要があります。私はこの問題の再帰的な解決法を行う方法を知っていますが、これに対して非再帰的な解決策は何ですか?ここに私のクラスがあります。データ構造内のBST add()メソッド
import java.util.*;
public class BST
{
// instance variables
private BSTNode m_root;
private int m_size;
// constructor
public BST()
{
m_root = null;
m_size = 0;
}
// add a value into the tree
public void add(int v)
{ BSTNode current = m_root;
if(current == null) {
m_root=new BSTNode(v);
m_size++;
}
else
{
while(current!=null) {
if(current.getInfo() > v) {
if(current.getLeft() == null) {
m_root.setLeft(new BSTNode(v));
m_size++;
current=null;
}
else
current = current.getLeft();
}
else if(current.getInfo()< v) {
if(current.getRight() == null) {
m_root.setRight(new BSTNode(v));
current=null;
m_size++;
}
else current = current.getRight();
}}}}
// get the size of the tree
public int size()
{
return m_size;
}
// empty the tree
public void clear()
{
m_root = null;
m_size = 0;
}
}
何を試しましたか? – jbapple
はい、 'add()'メソッドを記述しようとしてください。バグを見つけたら、ここでそれについての質問をしてください。 – markspace
申し訳ありませんが、ちょっと混乱してしまいました。私はそれを以下の回答の助けを借りて少し変更しましたが、どちらもうまくいきませんでした。 – Jennifer