Skip to content

Commit 6042025

Browse files
committed
working in heap DS
1 parent 4f684e2 commit 6042025

File tree

3 files changed

+52
-24
lines changed

3 files changed

+52
-24
lines changed

data-structure/heap-data-structure.js

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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+
}

data-structure/queue/priority-queue.js

Whitespace-only changes.

data-structure/queue/sample-queue.js

-24
Original file line numberDiff line numberDiff line change
@@ -29,31 +29,7 @@ class Queue {
2929
const newQueue = new Queue(5);
3030
console.log(newQueue)
3131
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();
4432
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);
5733

5834

5935

0 commit comments

Comments
 (0)