diff --git a/codes/javascript/chapter_stack_and_queue/queue.js b/codes/javascript/chapter_stack_and_queue/queue.js new file mode 100644 index 0000000000..5d26727f1a --- /dev/null +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -0,0 +1,30 @@ +/** + * File: queue.js + * Created Time: 2022-12-05 + * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) + */ + +/* 初始化队列 */ +// JavaScript 没有内置的队列,可以把 Array 当作队列来使用 +// 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) +const queue = []; + +/* 元素入队 */ +queue.push(1); +queue.push(3); +queue.push(2); +queue.push(5); +queue.push(4); + +/* 访问队首元素 */ +const peek = queue[0]; + +/* 元素出队 */ +// O(n) +const poll = queue.shift(); + +/* 获取队列的长度 */ +const size = queue.length; + +/* 判断队列是否为空 */ +const empty = queue.length === 0; diff --git a/codes/typescript/chapter_stack_and_queue/queue.ts b/codes/typescript/chapter_stack_and_queue/queue.ts new file mode 100644 index 0000000000..0701a9af57 --- /dev/null +++ b/codes/typescript/chapter_stack_and_queue/queue.ts @@ -0,0 +1,32 @@ +/** + * File: queue.ts + * Created Time: 2022-12-05 + * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) + */ + +/* 初始化队列 */ +// TypeScript 没有内置的队列,可以把 Array 当作队列来使用 +// 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) +const queue: number[] = []; + +/* 元素入队 */ +queue.push(1); +queue.push(3); +queue.push(2); +queue.push(5); +queue.push(4); + +/* 访问队首元素 */ +const peek = queue[0]; + +/* 元素出队 */ +// O(n) +const poll = queue.shift(); + +/* 获取队列的长度 */ +const size = queue.length; + +/* 判断队列是否为空 */ +const empty = queue.length === 0; + +export { }; diff --git a/docs/chapter_stack_and_queue/queue.md b/docs/chapter_stack_and_queue/queue.md index a663b97456..c270585199 100644 --- a/docs/chapter_stack_and_queue/queue.md +++ b/docs/chapter_stack_and_queue/queue.md @@ -20,13 +20,13 @@ comments: true
-| 方法 | 描述 | -| --------- | ------------------------ | -| offer() | 元素入队,即将元素添加至队尾 | -| poll() | 队首元素出队 | -| front() | 访问队首元素 | -| size() | 获取队列的长度 | -| isEmpty() | 判断队列是否为空 | +| 方法 | 描述 | +| --------- | ---------------------------- | +| offer() | 元素入队,即将元素添加至队尾 | +| poll() | 队首元素出队 | +| front() | 访问队首元素 | +| size() | 获取队列的长度 | +| isEmpty() | 判断队列是否为空 |
@@ -143,13 +143,59 @@ comments: true === "JavaScript" ```js title="queue.js" + /* 初始化队列 */ + // JavaScript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) + const queue = []; + + /* 元素入队 */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + /* 访问队首元素 */ + const peek = queue[0]; + + /* 元素出队 */ + // O(n) + const poll = queue.shift(); + + /* 获取队列的长度 */ + const size = queue.length; + + /* 判断队列是否为空 */ + const empty = queue.length === 0; ``` === "TypeScript" ```typescript title="queue.ts" + /* 初始化队列 */ + // TypeScript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) + const queue: number[] = []; + + /* 元素入队 */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + /* 访问队首元素 */ + const peek = queue[0]; + + /* 元素出队 */ + // O(n) + const poll = queue.shift(); + + /* 获取队列的长度 */ + const size = queue.length; + + /* 判断队列是否为空 */ + const empty = queue.length === 0; ``` === "C"