weave datastructure merge two queue
by Pritesh Patel
JavaScript
class Queue {
constructor() {
this.data = [];
/* this.sourceOne = [] */;
/* this.sourceTwo = [] */;
}
add(record) {
this.data.unshift(record);
/* this.sourceOne.unshift(record) */;
/* this.sourceTwo.unshift(record) */;
}
remove() {
return this.data.pop();
//return this.sourceOne.pop();
///return this.sourceTwo.pop();
}
peek() {
return this.data[this.data.length - 1];
//return this.sourceOne[this.data.length - 1];
//return this.sourceTwo[this.data.length - 1];
}
}
function weave() {
const q = new Queue();
let sourceOne= new Queue();
let sourceTwo= new Queue();
/* q.add(1);
q.add(2);
console.log(q.peek());
console.log(q); */
sourceOne.add(7);
sourceOne.add(2);
sourceTwo.add(3);
sourceTwo.add(4);
sourceOne.add(1);
console.log(sourceOne);
while (sourceOne.peek() || sourceTwo.peek()) {
if (sourceOne.peek()) {
q.add(sourceOne.remove());
}
if (sourceTwo.peek()) {
q.add(sourceTwo.remove());
}
}
return console.log(q);
}
weave();