Code:
if(isLeafLevel){
//insert into leaf
//TODO: complete code
insert(index, new SortedTreeLeaf(key, value));
}
Damit wird ein neues Blatt mit Key und Value erstellt und an dem Index eingefügt. Aber welche insert-Methode rufst du hier auf? Die 2te Methode verlangt doch einen SortedTree und kein SortedTreeLeaf oder?
Das selbe hier, wo ist den die Insert-Methode, der ich eine node mitgeben kann?
Keine Kritik, ich verstehs nur nicht.
Des weiteren habe ich dies noch in der Aufgabe gefunden, denke das ist für das Splitten wichtig:
Zitat:
Knoten verweisen auf Kind‐Knoten/Blätter in einem bestimmten Wertebereich und haben einen maximalen Füllgrad (Anzahl Kind-Knoten)
Mein Vorschlag sieht so aus:
Code:
public void insert(Integer key, String value){
if(key<this.key)
this.key = key;
int index = this.search(key);
if(isLeafLevel){
//insert into leaf
//TODO: complete code
insert(index, new SortedTreeLeaf(key, value));
}
else{
//insert into node
//TODO: complete code
SortedTreeNode node = new SortedTreeNode(this.isLeafLevel);
node.key = key;
index = this.search(node.key);
insert(index, new SortedTreeLeaf(key, value);
//split if needed
if(node.isFull()){
//TODO: complete code
}
}
}