@@ -194,11 +194,13 @@ class SortedQueue<V, K = any> {
194
194
}
195
195
196
196
if ( ! node . left . right ) {
197
+ throw 'foo111'
197
198
node . left . right = node . right ;
198
199
return parent ;
199
200
}
200
201
201
202
if ( ! node . right . left ) {
203
+ throw 'bar222'
202
204
node . right . left = node . left ;
203
205
return parent ;
204
206
}
@@ -211,16 +213,12 @@ class SortedQueue<V, K = any> {
211
213
}
212
214
213
215
214
- if ( ! node . parent ) {
215
- throw new Error ( 'tbd' ) ;
216
- }
217
-
218
216
if ( true ) {
219
217
220
218
rightMost . parent . right = rightMost . left ;
221
219
rightMost . left = node . left ;
222
220
rightMost . right = node . right ;
223
- rightMost . parent = node . parent ;
221
+ rightMost . parent = parent ;
224
222
225
223
if ( ! parent ) {
226
224
this . rootNode = rightMost ;
@@ -242,8 +240,6 @@ class SortedQueue<V, K = any> {
242
240
}
243
241
244
242
245
-
246
-
247
243
return parent ;
248
244
249
245
@@ -642,8 +638,8 @@ const getNode = <V, K>(v: number, diff: number, count: number): SortedQueueNode<
642
638
// console.log(v, count);
643
639
return new SortedQueueNode < V , K > (
644
640
{ val : v as any , key : v as any } ,
645
- count > 16 ? emptyNodeSymbol : getNode ( v - diff , diff / 2 , count + 1 ) ,
646
- count > 16 ? emptyNodeSymbol : getNode ( v + diff , diff / 2 , count + 1 ) ,
641
+ count > 4 ? emptyNodeSymbol : getNode ( v - diff , diff / 2 , count + 1 ) ,
642
+ count > 4 ? emptyNodeSymbol : getNode ( v + diff , diff / 2 , count + 1 ) ,
647
643
) ;
648
644
}
649
645
@@ -727,7 +723,7 @@ const vals = [];
727
723
728
724
console . time ( 'start' ) ;
729
725
730
- for ( let i = 0 ; i < 1000 ; i ++ ) {
726
+ for ( let i = 0 ; i < 0 ; i ++ ) {
731
727
const r = Math . random ( ) ;
732
728
// console.time(String(r));
733
729
sq . insert ( r ) ;
@@ -876,6 +872,15 @@ for (const v of vals) {
876
872
// sq.findNextLargest(sq.findNextLargest(sq.findNextLargest(sq.findNextLargest()))).val
877
873
// );
878
874
875
+ const x = sq . remove ( sq . rootNode ) ;
876
+ console . log ( { x} ) ;
877
+ console . log ( 'new root-node val:' , sq . rootNode . val ) ;
878
+ console . log ( 'new root-node left val:' , sq . rootNode . left . val ) ;
879
+ console . log ( 'new root-node right val:' , sq . rootNode . right . val ) ;
880
+ sq . logInOrder ( sq . rootNode ) ;
881
+
882
+ throw 'bar'
883
+
879
884
let count = 0 ;
880
885
let smallest = sq . findSmallestValFromRoot ( ) ;
881
886
console . log ( smallest . val ) ;
0 commit comments