JSデータ構造とアルゴリズム(6)
スタックとキュー
スタック:下部に閉じた円柱、LIFO
例)ブラウザ履歴、前の操作を取り消す
Q:前後開口円柱、FIFO
レストランアプリ
では、どのようにして構造を作成しますか?
アレイの利点:相互に関連付けられているため、高速ですが、割り当てられたメモリがすべて使用されている場合は、
コピーするから、もっと使えます.
キューは、前の要素を削除するときにインデックスを再調整する必要があるため、O(n)になります.
インプリメンテーション
スタック
class Node {
constructor(value){
this.value = value;
this.next = null;
}
}
class Stack {
constructor(){
this.top = null;
this.bottom = null;
this.length = 0;
}
peek() {
// stack에 쌓인 가장 마지막 녀석을 확인하는 메소드
return this.top;
}
push(value){
const newNode = new Node(value);
if (this.length === 0) {
this.top = newNode;
this.bottom = newNode;
} else {
const holdingPointer = this.top;
this.top = newNode;
this.top.next = holdingPointer;
}
this.length++;
return this;
}
pop(){
if (!this.top) return null;
if (this.top === this.bottom) {
this.bottom = null;
}
this.top = this.top.next;
this.length--;
return this;
}
//isEmpty
}
リファレンス
https://soldonii.tistory.com/75?category=862199
Reference
この問題について(JSデータ構造とアルゴリズム(6)), 我々は、より多くの情報をここで見つけました
https://velog.io/@rlaqjawns112/JS-자료구조와-알고리즘6
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
スタック
class Node {
constructor(value){
this.value = value;
this.next = null;
}
}
class Stack {
constructor(){
this.top = null;
this.bottom = null;
this.length = 0;
}
peek() {
// stack에 쌓인 가장 마지막 녀석을 확인하는 메소드
return this.top;
}
push(value){
const newNode = new Node(value);
if (this.length === 0) {
this.top = newNode;
this.bottom = newNode;
} else {
const holdingPointer = this.top;
this.top = newNode;
this.top.next = holdingPointer;
}
this.length++;
return this;
}
pop(){
if (!this.top) return null;
if (this.top === this.bottom) {
this.bottom = null;
}
this.top = this.top.next;
this.length--;
return this;
}
//isEmpty
}
リファレンス
https://soldonii.tistory.com/75?category=862199
Reference
この問題について(JSデータ構造とアルゴリズム(6)), 我々は、より多くの情報をここで見つけました
https://velog.io/@rlaqjawns112/JS-자료구조와-알고리즘6
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(JSデータ構造とアルゴリズム(6)), 我々は、より多くの情報をここで見つけました https://velog.io/@rlaqjawns112/JS-자료구조와-알고리즘6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol