8000 Fixed · coderaven/avl-tree@8fed187 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8fed187

Browse files
author
Raven G. Duran
committed
Fixed
1 parent 4170c3a commit 8fed187

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

avl.c

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -133,25 +133,31 @@ void doDelete(){
133133
dNode = NULL;
134134
} else if (dNode->left != NULL){
135135
predecessor = findMax(dNode->left); // Get predecessor
136-
// update predecessor parent
137-
if (predecessor->parent->left != NULL) {
138-
if (predecessor->parent->left->value == predecessor->value) predecessor->parent->left = NULL;
139-
} else predecessor->parent->right = NULL;
140-
136+
141137
// swap with predecessor
142-
dNode->value = predecessor->value;
143-
free(predecessor);
138+
if (predecessor->left != NULL){
139+
if (predecessor->parent->right == predecessor)predecessor->parent->right = predecessor->left;
140+
else predecessor->parent->left = predecessor->left;
141+
142+
predecessor->left->parent = predecessor->parent;
143+
}
144+
145+
dNode->value = predecessor->value;
146+
free(predecessor);
144147

145148
} else {
146149
successor = findMin(dNode->right); // Get successor
147150
// update successor parent
148-
if (successor->parent->left != NULL) {
149-
if (successor->parent->left->value == successor->value) successor->parent->left = NULL;
150-
} else successor->parent->right = NULL;
151-
152-
// swap with predecessor
153-
dNode->value = successor->value;
154-
free(successor);
151+
// swap with predecessor
152+
if (successor->right != NULL){
153+
if (successor->parent->right == successor)successor->parent->right = successor->right;
154+
else successor->parent->left = successor->right;
155+
156+
successor->right->parent = successor->parent;
157+
}
158+
159+
dNode->value = successor->value;
160+
free(successor);
155161
}
156162

157163
if (temp->parent != NULL) balanceCheck(temp->parent);

avl.exe

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)
0