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();