Files
hello-algo/ja/codes/javascript/chapter_stack_and_queue/deque.js
T
Yudong Jin 7257641e0e Retranslate the complete Japanese online edition from Chinese (#2008)
* Retranslate the complete Japanese online edition from Chinese

* Fit Japanese homepage labels and localize heading permalinks

* Point Japanese contribution instructions to the Japanese preview

* Replace locale conditionals with multilingual UI tables
2026-10-30 02:12:26 +08:00

45 lines
1.5 KiB
JavaScript

/**
* File: deque.js
* Created Time: 2023-01-17
* Author: Zhuo Qinyue ([email protected])
*/
/* 実行用コード */
/* 両端キューを初期化する */
// JavaScript には組み込みの両端キューがないため、Array を両端キューとして使うしかない
const deque = [];
/* 要素をエンキューする */
deque.push(2);
deque.push(5);
deque.push(4);
// 配列なので unshift() メソッドの時間計算量は O(n) であることに注意
deque.unshift(3);
deque.unshift(1);
console.log('両端キュー deque = ', deque);
/* 要素にアクセスする */
const peekFirst = deque[0];
console.log('キューの先頭要素 peekFirst = ' + peekFirst);
const peekLast = deque[deque.length - 1];
console.log('キューの末尾要素 peekLast = ' + peekLast);
/* 要素をデキューする */
// 配列なので shift() メソッドの時間計算量は O(n) であることに注意
const popFront = deque.shift();
console.log(
'先頭からデキューした要素 popFront = ' + popFront + '、先頭からデキューした後 deque = ' + deque
);
const popBack = deque.pop();
console.log(
'末尾からデキューした要素 popBack = ' + popBack + '、末尾からデキューした後 deque = ' + deque
);
/* 両端キューの長さを取得する */
const size = deque.length;
console.log('両端キューの長さ size = ' + size);
/* 両端キューが空かどうかを判定する */
const isEmpty = size === 0;
console.log('両端キューは空か = ' + isEmpty);