package csci152.impl;
import csci152.adt.Set;
import csci152_classes.TreeNode;
public class BSTSet<T extends Comparable> implements Set<T> {
private TreeNode<T> root;
private int size;
public BSTSet(){
root = null;
size = 0;
}
@Override
public void add(T value) {
if(!contains(value)){
addHelper(value, root);
}
}
private void addHelper(T value, TreeNode<T> n){
if(n ==null){
if(size ==0){
root = new TreeNode<T>(value);
}else{
**n = new TreeNode<T>(value);**}
size++;
return;
}
if(value.compareTo(n.getValue())>0){
addHelper(value, n.getRight());
}else if(value.compareTo(n.getValue())<0){
addHelper(value,n.getLeft());
}
}
@Override
public boolean contains(T value) {
return containsHelper(value, root);
}
private boolean containsHelper(T value, TreeNode<T> node){
if(node ==null){
return false;
}
if(value.compareTo(node.getValue())>0){
return containsHelper(value, node.getRight());
}else if(value.compareTo(node.getValue())<0){
return containsHelper(value,node.getLeft());
}return true;
}
@Override
public boolean remove(T value) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public T removeAny() throws Exception {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public int getSize() {
return size;
}
@Override
public void clear() {
size = 0;
root = null;
}
public String toString(){
return toStringHelper(root);
}
private String toStringHelper(TreeNode<T> node){
if(node == null){
return "";
}
return toStringHelper(node.getLeft()) +
node.getValue() +
toStringHelper(node.getRight());
}
}
Der Code unterstrichen (n = new TreeNode (value);) nicht richtig funktioniert. Wenn ich also Code ausführe, wird die Größe inkrementiert, aber root wird auf null gesetzt und ein neuer TreeNode wird nicht erstellt. Warum ist das? Wo ist mein Fehler? Danke für die Hilfe!!!BSTSet Implementierung von Methoden enthält (T-Wert) und addieren (T-Wert) unter Verwendung der Rekursion