summaryrefslogtreecommitdiff
path: root/tree/src/cTree.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tree/src/cTree.cpp')
-rw-r--r--tree/src/cTree.cpp26
1 files changed, 23 insertions, 3 deletions
diff --git a/tree/src/cTree.cpp b/tree/src/cTree.cpp
index 6a871dd..ef6556e 100644
--- a/tree/src/cTree.cpp
+++ b/tree/src/cTree.cpp
@@ -32,11 +32,31 @@ void cTree::remove(cData* _data)
{
sSubTree subTree;
root->remove(_data, &subTree, &root);
+ cout << "Remove Finished\n";
+
+ if(subTree.nextBigger && subTree.nextSmaller)
+ {
+ cNode* newRoot = subTree.nextSmaller->getFirstNode( &(subTree.nextSmaller));
+ cout << "Got new root\n";
+
+ root->insert(newRoot, &root );
+ cout << "Inserted new root\n";
+ }
+ if (subTree.nextBigger)
+ {
+ root->insert(subTree.nextBigger, &root);
+ cout << "nextBigger inserted\n";
+ }
+ if(subTree.nextSmaller)
+ {
+ root->insert(subTree.nextSmaller, &root);
+ cout << "nextSmaller inserted\n";
+ }
- root->insert(subTree.nextSmaller->getFirstNode(&root), &root); //Insert new root
//Insert remaining subtree
- root->insert(subTree.nextSmaller, &root);
- root->insert(subTree.nextBigger, &root);
+
+
+
}//remove
void cTree::getList(list<cData>* _list)