数据结构-javascript实现【队列】


队列是遵循先进先出(FIFO) 原则的一组有序的项,队列在尾部添加新元素,并从首部移除元素。

1.队列可用的的方法

enqueque(elements) : 向队列尾部添加一个或多个新的元素

dequeque(): 移除队列的第一个元素,并返回被移除的元素

front(): 返回队列中第一个元素,最先被添加,也是最先被移除的元素

isEmpty(): 检测队列是否为空

size(): 返回队列中包含的元素个数

2. 队列的实现

function queue() {
  let items = [];

  const enqueue = (element) =>{
    items.push(element);
  };

  const dequeue = () => {
    return items.shift();
  };

  const front = () => {
    return items[0];
  };

  const isEmpty = () => {
    return items.length === 0;
  };

  const clear = () =>{
    items = [];
  };
  
  const size = () => {
    return items.length;
  };

  const print = () => {
    console.log(items.toString());
  };
  return {
    enqueue,
    dequeue,
    front,
    isEmpty,
    clear,
    size,
    print
  };
}

const queueObj = queue();
console.log(queueObj.isEmpty()); // true
queueObj.enqueue('John');
queueObj.enqueue('Jack');
console.log(queueObj.size()); // 3
queueObj.dequeue();
queueObj.print();