Data Structureを整理してみましょう.//Part1


Data Structure,


複数のデータセットの使用と格納方法を定義します.

1. Stack


ㅇLIFO(Last In First Out)、初めて最後の出現!
山積み
下から皿を積み上げ、一番上の皿から使う構造に似ています.
下図を見ると分かりやすい.

上の図を見て、方法のコードを確認してください.
次はStackの基本的な方法です.
Class Stack {
  Constructor() {]
  //기본적으로 있어야하는 프로퍼티들.
    this.storage = {}; // 자료를 저장할 공간, 빈 객체를 처음 값으로.
    this.top = 0; // 자료의 크기, 0을 처음값으로.
  }
  
  size() {
    //객체를 배열화 해서 길이를 리턴
    return Object.keys(this.storage).length;
  }
  
  push(element) {
    //마지막에 element push
    this.top++;
    this.storage[this.top] = element;
  }

  pop() {
    //마지막 값 삭제
    let result = this.storage[this.top];
    delete this.storage[this.top];
    this.top--;
    return result;
  }
}

2. Queue


ㅇFIFP(First In,First Out)、先に行く先に出て!
まるで遊園地に並んでいる人のようです.
最初に並んだ人が最初に乗り物に乗るような仕組みです.
下の写真を見ると分かりやすいです.

上の図を見て、方法のコードを確認してください.
次はQueueの基本的な方法です
class Queue {
  constructor() {
    //기본적으로 있어야하는 프로퍼티들.
    this.storage = {}; // 자료를 저장할 공간, 빈 객체를 처음 값으로.
    this.front = 0; // Queue의 시작을 나타내는 값.
    this.rear = 0; // Queue의 끝을 나타내는 값.
  }
  

  size() {
    //객체를 배열화 해서 length 리턴
    return Object.keys(this.storage).length;
  }

  enqueue(element) {
    //끝에 element 삽입
    this.storage[this.rear] = element;
    this.rear++;
  }

  dequeue() {
    //맨 앞의 값 제거
    let result = this.storage[this.front];
    delete this.storage[this.front];
    this.front++;
    return result;
  }
}