各位靓仔靓女,早上好!我是你们的老朋友,今天要跟大家聊聊JavaScript里一个稍微冷门但又实用的数据结构:双端队列(Deque)。 别怕,听名字唬人,其实用起来可香了! 开场白:队列这玩意儿,你得懂! 咱们先回忆一下基础的队列。 队列就像你去银行排队,先进先出(FIFO)。新来的人排在队尾,办完事儿的人从队首离开。JavaScript里可以用数组模拟: let queue = []; // 入队 (队尾添加) queue.push(1); queue.push(2); queue.push(3); // 出队 (队首移除) let first = queue.shift(); // first 现在是 1 console.log(queue); // 输出: [2, 3] 简单粗暴,对吧? 但是,问题来了! shift() 操作在数组头部移除元素,涉及到后面所有元素的移动,如果队列很长,效率就比较低。 这时候,就需要我们的主角——双端队列登场了! 什么是双端队列? (Deque = Double Ended Queue) 顾名思义,双端队列就是两端都可以进出的队列。 你可以从队头添 …