From d0d53c5a84ca956a35ea706382ec185b30e45c03 Mon Sep 17 00:00:00 2001 From: S-N-O-R-L-A-X Date: Mon, 5 Dec 2022 22:03:36 +0800 Subject: [PATCH 1/8] feat: add queue in js --- .../chapter_stack_and_queue/queue.js | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 codes/javascript/chapter_stack_and_queue/queue.js 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 000000000..cb5b3e4d3 --- /dev/null +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -0,0 +1,29 @@ +/** + * File: queue.js + * Created Time: 2022-12-04 + * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) + */ + +/* 初始化队列 */ +// Javascript 没有内置的队列,可以把 Array 当作队列来使用 +// 但是,要注意虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 +const queue = []; + +/* 元素入队 */ +queue.push(1); +queue.push(3); +queue.push(2); +queue.push(5); +queue.push(4); + +/* 访问队首元素 */ +const peek = queue[0]; + +/* 元素出队 */ +const poll = queue.shift(); + +/* 获取队列的长度 */ +const size = queue.length; + +/* 判断队列是否为空 */ +const empty = queue.length === 0; From d8bc3ba3e596dde7fe2c8b1066d0613281662423 Mon Sep 17 00:00:00 2001 From: S-N-O-R-L-A-X Date: Mon, 5 Dec 2022 22:05:40 +0800 Subject: [PATCH 2/8] feat: add queue in ts --- .../chapter_stack_and_queue/queue.js | 2 +- .../chapter_stack_and_queue/queue.ts | 31 +++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 codes/typescript/chapter_stack_and_queue/queue.ts diff --git a/codes/javascript/chapter_stack_and_queue/queue.js b/codes/javascript/chapter_stack_and_queue/queue.js index cb5b3e4d3..2a90008a6 100644 --- a/codes/javascript/chapter_stack_and_queue/queue.js +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -6,7 +6,7 @@ /* 初始化队列 */ // Javascript 没有内置的队列,可以把 Array 当作队列来使用 -// 但是,要注意虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 +// 注意:虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 const queue = []; /* 元素入队 */ 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 000000000..6b8fa4aaa --- /dev/null +++ b/codes/typescript/chapter_stack_and_queue/queue.ts @@ -0,0 +1,31 @@ +/** + * File: queue.js + * Created Time: 2022-12-04 + * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) + */ + +/* 初始化队列 */ +// Typescript 没有内置的队列,可以把 Array 当作队列来使用 +// 注意:虽然Typescript有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]; + +/* 元素出队 */ +const poll = queue.shift(); + +/* 获取队列的长度 */ +const size = queue.length; + +/* 判断队列是否为空 */ +const empty = queue.length === 0; + +export { }; \ No newline at end of file From 77611bc758f2000ec92ab5d1f310c9add314bd47 Mon Sep 17 00:00:00 2001 From: S-N-O-R-L-A-X Date: Mon, 5 Dec 2022 22:06:31 +0800 Subject: [PATCH 3/8] feat: complement doc --- docs/chapter_stack_and_queue/queue.md | 64 ++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/docs/chapter_stack_and_queue/queue.md b/docs/chapter_stack_and_queue/queue.md index a663b9745..87f0abd9c 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,63 @@ comments: true === "JavaScript" ```js title="queue.js" +/* 初始化队列 */ + // Javascript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 + const queue = []; + /* 元素入队 */ + queue.push(1); + queue.push(3); + queue.push(2); + queue.push(5); + queue.push(4); + + /* 访问队首元素 */ + const peek = queue[0]; + + /* 元素出队 */ + const poll = queue.shift(); + + /* 获取队列的长度 */ + const size = queue.length; + + /* 判断队列是否为空 */ + const empty = queue.length === 0; ``` === "TypeScript" ```typescript title="queue.ts" + /** + * File: queue.js + * Created Time: 2022-12-04 + * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) + */ + /* 初始化队列 */ + // Typescript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:虽然Typescript有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]; + + /* 元素出队 */ + const poll = queue.shift(); + + /* 获取队列的长度 */ + const size = queue.length; + + /* 判断队列是否为空 */ + const empty = queue.length === 0; ``` === "C" From a81a0536726ca8e5fecacbcf13bf3ced37e63dbc Mon Sep 17 00:00:00 2001 From: S-N-O-R-L-A-X Date: Mon, 5 Dec 2022 22:07:41 +0800 Subject: [PATCH 4/8] fix: fix small problems --- codes/javascript/chapter_stack_and_queue/queue.js | 2 +- codes/typescript/chapter_stack_and_queue/queue.ts | 4 ++-- docs/chapter_stack_and_queue/queue.md | 8 +------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/codes/javascript/chapter_stack_and_queue/queue.js b/codes/javascript/chapter_stack_and_queue/queue.js index 2a90008a6..e08d2533d 100644 --- a/codes/javascript/chapter_stack_and_queue/queue.js +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -1,6 +1,6 @@ /** * File: queue.js - * Created Time: 2022-12-04 + * Created Time: 2022-12-05 * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) */ diff --git a/codes/typescript/chapter_stack_and_queue/queue.ts b/codes/typescript/chapter_stack_and_queue/queue.ts index 6b8fa4aaa..eb7b81354 100644 --- a/codes/typescript/chapter_stack_and_queue/queue.ts +++ b/codes/typescript/chapter_stack_and_queue/queue.ts @@ -1,6 +1,6 @@ /** - * File: queue.js - * Created Time: 2022-12-04 + * File: queue.ts + * Created Time: 2022-12-05 * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) */ diff --git a/docs/chapter_stack_and_queue/queue.md b/docs/chapter_stack_and_queue/queue.md index 87f0abd9c..e9c9fcb57 100644 --- a/docs/chapter_stack_and_queue/queue.md +++ b/docs/chapter_stack_and_queue/queue.md @@ -143,7 +143,7 @@ comments: true === "JavaScript" ```js title="queue.js" -/* 初始化队列 */ + /* 初始化队列 */ // Javascript 没有内置的队列,可以把 Array 当作队列来使用 // 注意:虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 const queue = []; @@ -171,12 +171,6 @@ comments: true === "TypeScript" ```typescript title="queue.ts" - /** - * File: queue.js - * Created Time: 2022-12-04 - * Author: S-N-O-R-L-A-X (snorlax.xu@outlook.com) - */ - /* 初始化队列 */ // Typescript 没有内置的队列,可以把 Array 当作队列来使用 // 注意:虽然Typescript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 From 0c5e2c45c8e7a57723935cfdcb478f87ec109d10 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 5 Dec 2022 22:54:26 +0800 Subject: [PATCH 5/8] Update queue.js --- codes/javascript/chapter_stack_and_queue/queue.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codes/javascript/chapter_stack_and_queue/queue.js b/codes/javascript/chapter_stack_and_queue/queue.js index e08d2533d..2ec3d692d 100644 --- a/codes/javascript/chapter_stack_and_queue/queue.js +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -6,7 +6,7 @@ /* 初始化队列 */ // Javascript 没有内置的队列,可以把 Array 当作队列来使用 -// 注意:虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 +// 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) const queue = []; /* 元素入队 */ @@ -20,6 +20,7 @@ queue.push(4); const peek = queue[0]; /* 元素出队 */ +// O(n) const poll = queue.shift(); /* 获取队列的长度 */ From 4c2ec0079f6188792f576f5d39ac137c7d91f147 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 5 Dec 2022 22:55:11 +0800 Subject: [PATCH 6/8] Update queue.ts --- codes/typescript/chapter_stack_and_queue/queue.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/codes/typescript/chapter_stack_and_queue/queue.ts b/codes/typescript/chapter_stack_and_queue/queue.ts index eb7b81354..0701a9af5 100644 --- a/codes/typescript/chapter_stack_and_queue/queue.ts +++ b/codes/typescript/chapter_stack_and_queue/queue.ts @@ -5,8 +5,8 @@ */ /* 初始化队列 */ -// Typescript 没有内置的队列,可以把 Array 当作队列来使用 -// 注意:虽然Typescript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 +// TypeScript 没有内置的队列,可以把 Array 当作队列来使用 +// 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) const queue: number[] = []; /* 元素入队 */ @@ -20,6 +20,7 @@ queue.push(4); const peek = queue[0]; /* 元素出队 */ +// O(n) const poll = queue.shift(); /* 获取队列的长度 */ @@ -28,4 +29,4 @@ const size = queue.length; /* 判断队列是否为空 */ const empty = queue.length === 0; -export { }; \ No newline at end of file +export { }; From 19401fbca99117f6f0995891531bb0f1325e1f34 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 5 Dec 2022 22:56:38 +0800 Subject: [PATCH 7/8] Update queue.md --- docs/chapter_stack_and_queue/queue.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/chapter_stack_and_queue/queue.md b/docs/chapter_stack_and_queue/queue.md index e9c9fcb57..c27058519 100644 --- a/docs/chapter_stack_and_queue/queue.md +++ b/docs/chapter_stack_and_queue/queue.md @@ -144,8 +144,8 @@ comments: true ```js title="queue.js" /* 初始化队列 */ - // Javascript 没有内置的队列,可以把 Array 当作队列来使用 - // 注意:虽然Javascript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 + // JavaScript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) const queue = []; /* 元素入队 */ @@ -159,6 +159,7 @@ comments: true const peek = queue[0]; /* 元素出队 */ + // O(n) const poll = queue.shift(); /* 获取队列的长度 */ @@ -172,8 +173,8 @@ comments: true ```typescript title="queue.ts" /* 初始化队列 */ - // Typescript 没有内置的队列,可以把 Array 当作队列来使用 - // 注意:虽然Typescript有shift()函数可以去除队首元素,但是时间复杂度是O(n)的。 + // TypeScript 没有内置的队列,可以把 Array 当作队列来使用 + // 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) const queue: number[] = []; /* 元素入队 */ @@ -187,6 +188,7 @@ comments: true const peek = queue[0]; /* 元素出队 */ + // O(n) const poll = queue.shift(); /* 获取队列的长度 */ From f6ed7bcc95809b54d1ec08d32f2bfb5ed579e802 Mon Sep 17 00:00:00 2001 From: Yudong Jin Date: Mon, 5 Dec 2022 22:57:24 +0800 Subject: [PATCH 8/8] Update queue.js --- codes/javascript/chapter_stack_and_queue/queue.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codes/javascript/chapter_stack_and_queue/queue.js b/codes/javascript/chapter_stack_and_queue/queue.js index 2ec3d692d..5d26727f1 100644 --- a/codes/javascript/chapter_stack_and_queue/queue.js +++ b/codes/javascript/chapter_stack_and_queue/queue.js @@ -5,7 +5,7 @@ */ /* 初始化队列 */ -// Javascript 没有内置的队列,可以把 Array 当作队列来使用 +// JavaScript 没有内置的队列,可以把 Array 当作队列来使用 // 注意:由于是数组,所以 shift() 的时间复杂度是 O(n) const queue = [];