JSFiddle - React, Tailwind, and code Playground

by Diana Lemen

JavaScript

const array = [];
let frontPoint = -1;
let backPoint = -1;
const maxQueueSize = 10;
const minQueueSize = 0;

const customQueue = (element) => {
	if (array.length === minQueueSize) {
   frontPoint = ++frontPoint;
	}
  
  if (array.length === maxQueueSize) {
   console.log('Queue is full');
   return;
  }
  
  backPoint = ++backPoint;
  array[backPoint] = element;
}

const customDequeue = () => {
  if (frontPoint > backPoint || (frontPoint === -1 && backPoint === -1)) {
  frontPoint = - 1;
  backPoint = -1;
  console.log('Queue is empty');
  return;
	}
	const deletedElem = array[frontPoint];
	array[frontPoint] = null;
  frontPoint = ++frontPoint;
  return deletedElem;
}

customQueue(1);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(2);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(3);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(4);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(5);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(6);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(7);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(8);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(9);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(10);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(11);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
customQueue(12);
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
console.log('deleted Elem ', customDequeue());
console.log('array', array, 'frontPoint', frontPoint, 'backPoint', backPoint);
console.log('deleted Elem ',...