コンピュータサイエンスの学位でデータ構造のコースを受講した場合、または独学のプログラマーである場合は、バイナリツリーという用語に出くわした可能性があります。それらは少し圧倒的で複雑に聞こえるかもしれませんが、二分木の概念は非常に単純です。
モバイルホットスポットはどのように機能しますか
二分木を分析しながら読み進め、なぜそれらがプログラマーにとって必要なコアコンセプトであるのかを説明します。
二分木とは何ですか?
二分木は、学生がデータ構造コースで教えられる最初のデータ構造の1つです。二分木は多くのノードで構成されており、二分木の各ノードには、左右の子データノードを示す2つのポインターが含まれています。
二分木の最初のノードはルートと呼ばれます。ツリーの最後のレベルのノードはリーフと呼ばれます。
各ノードには、データ項目と2つのノードポインタが含まれています。空の二分木はnullポインタで表されます。すでに理解しているかもしれませんが、二分木は2つの子しか持てません(そのため名前が付けられています)。
二分木構造の種類
ノードの配置方法に応じて、いくつかの異なる二分木構造があります。バイナリツリーは、ツリー内の各ノードに0個または2個の子がある場合、完全なバイナリツリーと呼ばれます。完全な二分木では、すべてのノードに2つの子があり、葉はすべて同じ深さにあります。
関連している: 無料でコーディングする方法を学ぶための最良の方法
完全な二分木では、最後のレベルを除いて、すべてのレベルでノードが埋められます。完全な二分木では、ノードはルートの左側に集中しています。もう1つの一般的な構造は、平衡二分木です。この構造では、左右のサブツリーの高さは最大で1つ異なる必要があります。また、左右のサブツリーのバランスもとる必要があります。
平衡二分木の高さはO(logn)であることに注意することが重要です。ここで、nはツリー内のノードの数です。
場合によっては、各ノードに左または右の子が1つしかない場合、バイナリツリーは歪んだバイナリツリーになる可能性があります。その後、リンクリストのように動作します。このようなツリーは縮退ツリーとも呼ばれます。
二分探索木とは何ですか?
バイナリ検索ツリー(BST)は、基本的に、「バイナリ検索ツリー」プロパティと呼ばれる特別なプロパティを持つ順序付けられたバイナリツリーです。 BSTプロパティは、キー値がルートよりも小さいノードが左側のサブツリーに配置され、キー値がルートよりも大きいノードが右側のサブツリーの一部であることを意味します。
BSTプロパティは、ツリー内の後続の各親ノードに対してtrueである必要があります。
gifを壁紙ウィンドウとして設定する10
二分探索木は、迅速な挿入と検索を提供します。挿入、削除、および検索操作には、リンクリストと同様の最悪の場合の時間計算量O(n)があります。
二分木の利点
二分木には多くの利点があり、それが非常に有用なデータ構造のままである理由です。これらは、データセット内の構造的な関係と階層を表示するために使用できます。さらに重要なことに、二分木は効率的な検索、削除、挿入を可能にします。
hbomaxがとても遅いのはなぜですか
また、バイナリツリーの実装と保守も非常に簡単です。二分木は、プログラマーに順序付き配列とリンクリストの利点を提供します。バイナリツリーでの検索は、並べ替えられた配列での検索と同じくらい高速であり、挿入または削除操作は、リンクリストでの検索と同じくらい効率的です。
二分木は重要なデータ構造です
二分木は非常に重要なデータ構造であり、プログラマーがプログラムに二分木を快適に適用できることが重要です。多くの場合、インタビュアーは、トラバーサル、最大深度、ミラーリングなどの単純な二分木の問題を尋ねます。
二分木の概念を理解し、典型的な面接の問題に精通することを強くお勧めします。
共有 共有 つぶやき Eメール TreeViz:データ構造を視覚化する簡単な方法 次を読む 関連トピック- プログラミング
- データ分析
- プログラミング
FahadはMakeUseOfのライターであり、現在はコンピューターサイエンスを専攻しています。熱心なテクニカルライターとして、彼は常に最新のテクノロジーを最新の状態に保つようにしています。彼は自分自身がサッカーとテクノロジーに特に興味を持っていることに気づきました。
M.ファハドカワジャのその他の作品ニュースレターを購読する
ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。
購読するにはここをクリックしてください