Ich brauche nur ein wenig Richtung, um dieses Datenstrukturproblem zu lösen. Ich muss eine add() - Methode für eine BST erstellen. Ich weiß, wie man die rekursive Lösung für dieses Problem macht, aber was ist eine nicht-rekursive Lösung für dieses Problem? Hier ist meine Klasse.BST in Datenstrukturen die add() Methode
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;
}
}
Was haben Sie schon versucht? – jbapple
Ja, bitte versuchen Sie, die 'add()' Methode zu schreiben. Wenn Sie einen Fehler finden, stellen Sie hier eine Frage dazu. – markspace
Sorry, es ist ein bisschen chaotisch, also habe ich es nicht hingelegt. Ich habe es ein wenig mit Hilfe der Antwort unten geändert, aber das hat auch nicht funktioniert ... – Jennifer