File tree 3 files changed +52
-24
lines changed
3 files changed +52
-24
lines changed Original file line number Diff line number Diff line change
1
+ // heap data structure
2
+
3
+ // left child = i * 2;
4
+ // left child = i * 2 + 1;
5
+ // parent = Math.floor(i / 2);
6
+
7
+ class MinHeap {
8
+ constructor ( size ) {
9
+ this . maxHeap = [ null ] ;
10
+ this . size = size ;
11
+
12
+ }
13
+ insert ( num ) {
14
+ if ( this . isFull ( ) ) {
15
+ return ;
16
+ }
17
+ this . maxHeap . push ( num ) ;
18
+ if ( this . maxHeap . length > 2 ) {
19
+ let idx = this . maxHeap . length - 1 ;
20
+ while ( this . maxHeap [ idx ] > this . maxHeap [ Math . floor ( idx / 2 ) ] ) {
21
+ if ( idx >= 1 ) {
22
+ this . maxHeap [ idx ] = this . maxHeap [ Math . floor ( idx / 2 ) ] ;
23
+ this . maxHeap [ Math . floor ( idx / 2 ) ] = this . maxHeap [ idx ] ;
24
+ if ( Math . floor ( idx / 2 ) > 1 ) {
25
+ idx = Math . floor ( idx / 2 ) ;
26
+ } else {
27
+ break ;
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ remove ( ) {
34
+ if ( this . isEmpty ( ) ) {
35
+ return ;
36
+ }
37
+ }
38
+ isFull ( ) {
39
+ if ( this . maxHeap . length - 1 === this . size ) {
40
+ console . log ( 'the heap is full' ) ;
41
+ return true
42
+ }
43
+ return false
44
+ }
45
+ isEmpty ( ) {
46
+ if ( this . maxHeap . length <= 1 ) {
47
+ console . log ( 'the heap is empty' )
48
+ return true
49
+ }
50
+ return false
51
+ }
52
+ }
Original file line number Diff line number Diff line change @@ -29,31 +29,7 @@ class Queue {
29
29
const newQueue = new Queue ( 5 ) ;
30
30
console . log ( newQueue )
31
31
newQueue . enqueue ( 3 ) ;
32
- newQueue . enqueue ( 3 ) ;
33
- newQueue . enqueue ( 3 ) ;
34
- newQueue . enqueue ( 3 ) ;
35
- newQueue . enqueue ( 3 ) ;
36
- newQueue . enqueue ( 3 ) ;
37
- newQueue . dequeue ( ) ;
38
- newQueue . dequeue ( ) ;
39
- newQueue . dequeue ( ) ;
40
- newQueue . dequeue ( ) ;
41
- newQueue . dequeue ( ) ;
42
- newQueue . dequeue ( ) ;
43
- newQueue . dequeue ( ) ;
44
32
newQueue . dequeue ( ) ;
45
- newQueue . dequeue ( ) ;
46
- newQueue . dequeue ( ) ;
47
- newQueue . enqueue ( 3 ) ;
48
- newQueue . enqueue ( 3 ) ;
49
- newQueue . enqueue ( 3 ) ;
50
- newQueue . dequeue ( ) ;
51
- newQueue . dequeue ( ) ;
52
- newQueue . dequeue ( ) ;
53
- newQueue . dequeue ( ) ;
54
- newQueue . dequeue ( ) ;
55
- newQueue . enqueue ( 3 ) ;
56
- newQueue . enqueue ( 3 ) ;
57
33
58
34
59
35
You can’t perform that action at this time.
0 commit comments