[データ構造]−スタック(STACK)
12093 ワード
スタック(STACK)
🌻 STACK - LIFO : LAST IN FIRST OUT
スタックの概念
LIFO(Last In First Out)
形式の資料構造スタックの主な演算
push(item)
:スタックの上部にアイテムを追加します.pop()
:スタックの一番上の項目をクリアします.peek()
:スタックの一番上の項目は取り除かず、戻ります.size()
:現在のスタック内の要素の数を返します.スタックの実装
タイルの使用例
class Stack {
constructor() {
this._arr = [];
}
// 배열의 뒤에서부터 채우고 빼는 push(), pop()을 통해 LIFO 구조를 구현
// 즉, 스택이 옆으로 누워 있는 형태
push(item) {
this._arr.push(item);
}
pop() {
return this._arr.pop();
}
peek() {
return this._arr[this._arr.length - 1];
}
}
const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
console.log(stack.pop()); // 3
console.log(stack.peek()); // 2
アレイが使用されていない例
class Stack {
constructor() {
this.storage = {};
this.top = 0;
// top 이라는 변수를 사용해
// 스택의 가장 윗 부분을 가리키도록 한다.
}
size() {
return this.top;
// top에 담긴 숫자가 결국 스택 안에 있는 요소의 개수가 된다.
}
push(element) {
this.storage[this.top] = element;
this.top += 1;
}
pop() {
// top이 0이라면 pop()을 할 수 없다.
if (this.top) {
this.top -= 1;
const popEle = this.storage[this.top];
delete this.storage[this.top];
return popEle;
}
return 'Stack is empty!';
}
}
const stack = new Stack();
stack.push(1);
stack.push(2);
console.log(stack.size()); // 2
console.log(stack.pop()); // 2
console.log(stack.pop()); // 1
console.log(stack.pop()); // Stack is empty!
スタック使用例
Reference
学習段階なので間違いがあるかもしれません。間違った内容でコメントを残したら修正しますありがとうございます
Reference
この問題について([データ構造]−スタック(STACK)), 我々は、より多くの情報をここで見つけました https://velog.io/@heeseok/JavaScript-스택STACKテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol