JavaScriptのデータ構造は?


ヘイ、ヘイ!🤟
今日はいくつかの基本的なJavaScriptデータ構造を見たいです.🧐
はい、私は知っている、それは魅力的な音をしないが、それはおそらくコードマスターになる唯一の方法です(または、少なくとも、自分のコードをもう少し理解).😄 .
あなたの毎日の仕事では、データ構造に注意を払うか、このもののための時間を持っていないだけで、最も簡単で最速のソリューションを選択するか?コメントで知らせてください!

データ構造


まず、データ構造を定義しましょう.名前がちょうどあなたのデータを組織して/構成する方法であることを示唆するかもしれません.ウェブを通して浮いている情報のあらゆる部分は、固体の、論理的な表現の若干の種類で、記憶に存在しなければなりません.
多くの場合、右の選択が顕著に大きなOの複雑さを減らすことができますし、アプリをスピードアップすることができますので、開発者の視点から最も人気のあるデータ構造の違いを知ることが重要です.しかし、実際に大きいOは何ですか?🤔

ビッグオー


ビッグO表記法は、アプリケーションの時間の複雑さを表現する一般的な方法です.これは最悪のシナリオの意味で使用されます(あなたのアルゴリズムが最悪の可能なケースを処理しなければならない状況、例えば、最長または最深の配列をループする).他の2つの記法(むしろめったに使われない)は大きいオメガ(最高のケースシナリオ)と大きいシータ(平均ケースシナリオ)です.ご覧のように、彼らの自然による開発者は、しばしば人生の明るい面には見えません😔 . 注文の複雑な種類があります.私は間違いなく後の各1つを見ていきますが、今のところ、この概念に慣れると直接最初のデータ構造-スタックに行きましょう.

スタック-最後の最初のアウト( LIFO )


スタックは、最も最近追加された順序付きリストです
要素を削除する最初の要素です.
最も簡単な実装
const stack = [ ];
stack.push(2); // stack is now [2]
stack.push(5); // stack is now [2, 5]
stack.pop( ); // stack is now [2]

最初の最初のアウト( FIFO )


前の定義に基づいて推測するかもしれないように、キューは順序付きリストでもありますが、今回は最も最近追加された要素が削除する最後の要素です.要素は、それらが追加されたのと同じ順序で削除されます.
最も簡単な実装
const queue = [ ];
queue.push(2); // queue is now [2]
queue.push(5); // queue is now [2, 5]
queue.shift( ); // queue is now [5]


連結リスト


さて、2つの最も基本的なデータ構造についての基本的な知識があるとき、もっと面白いことについて話しましょう.
リンクリストは、各々の要素がリンクされる(または、言い換えれば、参照を有する)次のノードへの構造である.この種のデータ構造は、例えばブロックチェーンで実施されるいくつかの点にある.

ハッシュテーブル


ハッシュテーブルの背後にある主なアイデアは、検索と要素を比較するプロセスをスピードアップすることです.各要素にはハッシュ関数を使用して生成される独自の数値表現があります.特定の要素を見つけたいときには、インデックスを検索することができます(多くの場合、多くの場合、より速く、より効率的になることができます).

概要


私は、このトピックは、おそらくいくつかのファンシーSEOのトリックよりも面白い方法ではなく、最初の外観で、それは理解し、現実の例に入れてはるかに難しいことを知っている.あなたが理解する必要があります、我々はすべてのいくつかの本当の魔法を行うことができます前に、強力な基礎を作成する定義が🧙‍♂️. このトピックに興味がある場合は、コメントを知っている場合は、それに何かを追加する場合!🤓