JavaScriptデータ構造基礎(1)


#Javascriptのデータ構造
Stack 📌
  • の第1の出力構造を持つ釣魚島.
  • const stack = [];
    // push 값을 스택에 할당한다.
    stack.push(1);
    stack.push(2);
    stack.push(3);
    
    stack[stack.length-1]; // peek : 3 -마지막에 삽입된 값
    stack.pop(); // 3
    stack.pop(); // 2
    stack.pop(); // 1
    //삽입순서와 반대순서로 값을 뺀다
    Queue 📌
  • の第1入力(FIFO)構造を有する.
  • const queue = [];
    
    queue.push(1); // enqueue 1
    queue.push(2); // enqueue 2
    queue.push(3); // enqueue 3
    
    queue.shift(); // dequeue 1
    queue.shift(); // dequeue 2
    queue.shift(); // dequeue 3
    // 삽입순서와 같은 순서로 값을 뺀다.
    Linked List 📌
  • オブジェクトを参照することによって実現することができる.
  • function Node(val) {
      this.val = val;
      this.next = null;
    }
    let head = new Node(0);
    let node1 = new Node(1);
    let node2 = new Node(2);
    
    head.next = node1;
    node1.next = node2;
  • デュアル接続リストも実装できます.prevを追加し、双方向参照を実現します.
  • function Node(val) {
      this.val = val;
      this.next = null;
      this.prev = null;
    }
    let head = new Node(0);
    let node1 = new Node(1);
    let node2 = new Node(2);
    
    head.next = node1;
    node1.next = node2;
    node1.prev = head;
    node2.prev = node1;
    Map 📌
  • O(1)のアクセス性->は、時間の複雑さの低減に決定的な影響を及ぼす.
  • ES 6から、Map資料構造が追加され、使い勝手が良くなりました.
  • const map = new Map();
    map.set('p1', 1);
    map.set('p2', 2);
    
    map.get('p1'); // 1
    map.get('p2'); // 2
    Set 📌
  • Mapと同様ですが、重複値は許可されません.
  • ES 6標準構文
  • const set = new Set();
    set.add(1);
    set.add(2);
    
    set.has(1); // true
    set.has(2); // true
    set.has(3); // false