Skip to content

Commit c1febd5

Browse files
author
Mengyi Zhou
committed
check logics
1 parent c59ff1e commit c1febd5

File tree

1 file changed

+19
-4
lines changed
  • homework/src/main/java/com/offline/training/homework/hw6/dict

1 file changed

+19
-4
lines changed

homework/src/main/java/com/offline/training/homework/hw6/dict/Tree234.java

+19-4
Original file line numberDiff line numberDiff line change
@@ -129,13 +129,19 @@ public void insert(int key, Tree234Node node) {
129129
return;
130130
}
131131

132-
if(key < targetNode.key1) {
132+
if (key < targetNode.key1) {
133133
targetNode.key3 = targetNode.key2;
134134
targetNode.key2 = targetNode.key1;
135135
targetNode.key1 = key;
136+
} else if (key == targetNode.key1) {
137+
return;
136138
} else if(targetNode.keys == 1 || key < targetNode.key2){
137139
targetNode.key3 = targetNode.key2;
138140
targetNode.key2 = key;
141+
} else if (key == targetNode.key2) {
142+
return;
143+
} else if (key == targetNode.key3) {
144+
return;
139145
} else {
140146
targetNode.key3 = key;
141147
}
@@ -184,9 +190,6 @@ private Tree234Node split(Tree234Node node) {
184190
return root;
185191
}
186192

187-
if (node.parent.isFull())
188-
split(node.parent);
189-
190193
// here parent is guaranteed to be not full
191194
Tree234Node parent = node.parent;
192195
switch (parent.keys) {
@@ -372,8 +375,20 @@ public static void main(String[] args) {
372375
t.testHelper("(((1 4)7(11 16))22((23)28(37 49)))50(((51)60(66)75" +
373376
"(80 81))84((86)95(99 100)))");
374377

378+
testDuplicate(t);
379+
375380
System.out.println("\nFinal tree:");
376381
t.printTree();
377382
}
378383

384+
private static void testDuplicate(Tree234 t) {
385+
String origin = t.toString();
386+
System.out.println("\nDuplicating 80, 50, 37, 1.");
387+
t.insert(80);
388+
t.insert(50);
389+
t.insert(37);
390+
t.insert(1);
391+
t.testHelper(origin);
392+
}
393+
379394
}

0 commit comments

Comments
 (0)