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());
}
}
Le code souligné (n = new TreeNode (value);) ne fonctionne pas correctement. Donc, quand j'exécute du code, la taille est incrémentée, mais la racine est gardée nulle et le nouveau TreeNode n'est pas créé. Pourquoi est-ce? Où est mon erreur? Merci pour l'aide!!!BSTSet L'implémentation des méthodes contient (valeur T) et ajoute (valeur T) en utilisant la récursivité