🔥

アルゴリズム図鑑 ~ Data structure in JavaScript

に公開
  1. Linked list
function ListNode(val, next) {
    this.val = (val === undefined ? 0 : val);
    this.next = (next === undefined ? null : next);
}

  1. 配列
  2. スタック
  3. キュー
  4. ハッシュテーブル
const map = new Map();
// 値をセット
map.set('a', 1);
// 値を取得
console.log(map.get('a')); // 1
  1. ヒープ
#include <queue>
#include <vector>
#include <iostream>

int main() {
    std::priority_queue<int> maxHeap;

    maxHeap.push(10);
    maxHeap.push(5);
    maxHeap.push(20);

    std::cout << maxHeap.top() << std::endl; // 20(最大値)

    maxHeap.pop(); // 20を削除

    std::cout << maxHeap.top() << std::endl; // 10
}
  1. 二分探索木
set.cpp
#include <set>
#include <iostream>

int main() {
    std::set<int> bst;

    bst.insert(10);
    bst.insert(5);
    bst.insert(20);

    for (int val : bst) {
        std::cout << val << " "; // 5 10 20
    }

    bst.erase(10);
    std::cout << "\nContains 10? " << (bst.count(10) ? "Yes" : "No") << std::endl;
}
map.cpp
#include <map>
#include <iostream>

int main() {
    std::map<std::string, int> bst;

    bst["apple"] = 5;
    bst["banana"] = 2;
    bst["cherry"] = 9;

    for (auto [k, v] : bst) {
        std::cout << k << ": " << v << std::endl;
    }

    bst.erase("banana");
}

Discussion