-
データ構造におけるプレオーダーツリートラバーサル
このセクションでは、二分探索木のための事前順序トラバーサル手法(再帰的)について説明します。 このようなツリーが1つあるとします- トラバーサルシーケンスは次のようになります:10、5、8、16、15、20、23 アルゴリズム preorderTraverse(root): Begin if root is not empty, then print the value of root preorderTraversal(left of root)  
-
データ構造の二分探索木
二分探索木は、いくつかの特性を持つ二分木です。これらのプロパティは次のようなものです- すべての二分探索木は二分木です 左の子はすべて、ルートよりも価値が低くなります すべての正しい子はrootよりも大きな価値を持ちます 理想的な二分探索木は、同じ値を2回保持することはありません。 このようなツリーが1つあるとします- このツリーは1つの二分探索木です。上記のすべてのプロパティに従います。要素をインオーダートラバーサルモードにトラバースすると、5、8、10、15、16、20、23を取得できます。これをC++コードで実装する方法を理解するために1つのコードを見てみましょう。 例 #
-
グラフとその走査アルゴリズム
このセクションでは、グラフデータ構造とそのトラバーサルアルゴリズムについて説明します。 グラフは1つの非線形データ構造です。これは、いくつかのノードとそれらの接続されたエッジで構成されています。エッジは、ディレクターまたは無向の場合があります。このグラフは、G(V、E)として表すことができます。次のグラフは、G({A、B、C、D、E}、{(A、B)、(B、D)、(D、E)、(B、C)、(C、A )}) グラフには、2種類のトラバーサルアルゴリズムがあります。これらは、幅優先探索および深さ優先探索と呼ばれます。 幅優先探索(BFS) 幅優先探索(BFS)トラバーサルはアルゴリズムであ
-
データ構造におけるDFSとBFSのアプリケーション
ここでは、グラフのDFSアルゴリズムとBFSアルゴリズムのさまざまなアプリケーションを確認します。 DFSまたは深さ優先探索はさまざまな場所で使用されます。一般的な使用法は次のとおりです- 重み付けされていないグラフでDFSを実行すると、すべてのペアの最短パスツリーに対して最小スパニングツリーが作成されます DFSを使用して、グラフ内のサイクルを検出できます。 BFS中に1つのバックエッジを取得する場合、1つのサイクルが必要です。 DFSを使用して、指定された2つの頂点uとvの間のパスを見つけることができます。 トポロジカルソートは、ジョブ間の特定の依存関係からジョブをスケジュールする
-
データ構造の最小スパニングツリー
スパニングツリー は、最小数のエッジで接続されたすべての頂点を持つ無向グラフのサブセットです。 すべての頂点がグラフで接続されている場合、少なくとも1つのスパニングツリーが存在します。グラフには、複数のスパニングツリーが存在する場合があります。 最小スパニングツリー 最小スパニングツリー(MST) は、接続された重み付き無向グラフのエッジのサブセットであり、すべての頂点を可能な限り最小の合計エッジ重みで接続します。 MSTを導出するには、プリムのアルゴリズムまたはクラスカルのアルゴリズムを使用できます。したがって、この章ではプリムのアルゴリズムについて説明します。 すでに説明したように、
-
データ構造におけるベルヌーイ分布
ベルヌーイ分布は、x =0とx=1でラベル付けされた2つの可能な結果を持つ離散分布です。x=1は成功であり、x=0は失敗です。成功は確率pで発生し、失敗は確率qでq =1 –pとして発生します。だから $$ P \ lgroup x \ rgroup =\ begin {cases} 1-p \:for&x =0 \\ p \:for&x =0 \ end {cases} $$ これは、次のように書くこともできます- $$ P \ lgroup x \ rgroup =p ^ {n} \ lgroup1-p \ rgroup ^ {1-n} $$ 例 #include <i
-
データ構造における二項分布
二項分布は、N個のベルヌーイトレイルからn個の成功を取得する離散確率分布Pp(n | N)です(x=0およびx=1でラベル付けされた2つの可能な結果があります。x=1は成功であり、x =0は失敗。成功は確率pで発生し、失敗は確率qでq =1 – pとして発生します。)したがって、二項分布は次のように記述できます。 $$ P_ {p} \ lgroup n \:\ arrowvert \ N \ rgroup =\ left(\ begin {array} {c} N \\ n \ end {array} \ right)p ^ {n} \ lgroup1-p \ rgroup ^ {N-n}
-
データ構造における幾何分布
幾何分布は、n =0、1、2、…の離散確率分布です。確率密度関数を持っています。 $$ P \ lgroup n \ rgroup =p \ lgroup1-p \ rgroup ^ {n} $$ 分布関数は-です $$ D \ lgroup n \ rgroup =\ displaystyle \ sum \ Limits_ {i =0} ^ n P \ lgroup i \ rgroup =1-q ^ {n + 1} $$ 例 #include <iostream> #include <random> using namespace std; int m
-
データ構造における負の二項分布
負の二項分布は、負の二項離散分布に従って整数を生成する乱数分布です。これはパスカルの分布として知られているため、負の二項分布は次のように書くことができます $$ P \ lgroup i \ arrowvert k、p \ rgroup =\ lgroup \ frac {k + i-1} {i} \ rgroup p ^ {k} \ lgroup 1-p \ rgroup ^ {i} $$ 例 #include <iostream> #include <random> using namespace std; int main(){ co
-
データ構造における最適な二分木
整数のセットはソートされた順序で与えられ、別の配列は頻度カウントに頻繁に与えられます。私たちのタスクは、これらのデータを使用してバイナリ検索ツリーを作成し、すべての検索の最小コストを見つけることです。 サブ問題の解を解いて保存するために、補助配列cost [n、n]が作成されます。コストマトリックスは、ボトムアップ方式で問題を解決するためのデータを保持します。 入力 −ノードおよび頻度としてのキー値。 Keys = {10, 12, 20} Frequency = {34, 8, 50} 出力 −最小コストは142です。 これらは、指定された値から可能なBSTです。 ケース1の
-
データ構造における凸包の例
ここでは、凸包の1つの例を示します。一連のポイントがあるとします。与えられたすべてのポイントをカバーするポイントの数を減らしてポリゴンを作成する必要があります。このセクションでは、凸包を取得するためのJarvisMarchアルゴリズムについて説明します。 ジャービスマーチアルゴリズムは、特定のデータポイントのセットから凸包のコーナーポイントを検出するために使用されます。 データセットの左端のポイントから開始して、反時計回りの回転によって凸包内のポイントを保持します。現在のポイントから、現在のポイントからのそれらのポイントの方向を確認することにより、次のポイントを選択できます。角度が最大の場
-
データ構造におけるスタックADT
抽象データ型は特殊な種類のデータ型であり、その動作は一連の値と一連の操作によって定義されます。これらのデータ型を使用できるため、キーワード「Abstract」が使用され、さまざまな操作を実行できます。しかし、これらの操作がどのように機能しているかは、ユーザーには完全に隠されています。 ADTはプリミティブデータ型で構成されていますが、操作ロジックは非表示になっています。 ここにスタックADTが表示されます。これらは、StackADTのいくつかの操作または機能です。 isFull()、これはスタックがいっぱいかどうかを確認するために使用されます isEmpry()、これはスタックが空かど
-
データ構造における検索方法の比較
場合によっては、いくつかのキーを見つけるためにさまざまな検索スキームを実行します。このセクションでは、シーケンシャル検索とバイナリ検索の2つの検索手法の基本的な違いを説明します。 シーケンシャル検索 二分探索 時間計算量はO(n) 時間計算量はO(log n) 一定時間内に最初の位置に存在するキーを検索します 一定時間内に中央位置に存在するキーを検索します コンテナ内の要素のシーケンスは影響しません。 要素はコンテナ内で並べ替える必要があります 配列とリンクリストを使用してこれを実装できます リンクリストに直接実装することはできません。これを実装するには、リストの基本
-
データ構造の並べ替え方法の比較
ここでは、いくつかのソート方法を示します。 200以上のソート手法があります。それらのいくつかを見るでしょう。一部の並べ替え手法は比較ベースの並べ替えであり、一部は非比較ベースの並べ替え手法です。 比較ベースのソート手法には、バブルソート、選択ソート、挿入ソート、マージソート、クイックソート、ヒープソートなどがあります。これらの手法では、値が比較され、さまざまなフェーズでソートされた位置に配置されるため、これらの手法は比較ベースのソートと見なされます。ここでは、これらの手法の時間計算量を確認します。 分析タイプ バブルソート 選択ソート 挿入ソート マージソート クイックソート ヒープソー
-
データ構造の隣接リスト
グラフは非線形のデータ構造です。これは、ノードを使用したデータと、エッジを使用したそれらの関係を表します。グラフGには2つのセクションがあります。頂点とエッジ。頂点はセットVを使用して表され、エッジはセットEとして表されます。したがって、グラフ表記はG(V、E)です。アイデアを得るための1つの例を見てみましょう。 このグラフには、5つの頂点と5つのエッジがあります。エッジが方向付けられます。例として、頂点BとDを接続するエッジを選択した場合、ソース頂点はBで、デスティネーションはDです。したがって、BをDに移動することはできますが、DからBに移動することはできません。 グラフは非線形
-
データ構造における検索ツリーの比較
ここでは、いくつかの検索ツリーとその違いを確認します。多くの異なる探索木があります。それらは性質が異なります。基本的な検索ツリーは、バイナリ検索ツリー(BST)です。他の検索ツリーには、AVLツリー、Bツリー、赤黒木、スプレーツリーなどがあります。 これらのツリーは、操作に基づいて比較できます。これらの木の時間計算量がわかります 検索ツリー 平均的なケース 挿入 削除 検索 二分探索木 O(log n) O(log n) O(log n) AVLツリー O(log 2 n) O(log 2 n) O(log 2 n) Bツリー O(log
-
分散共有メモリを実装するためのアルゴリズム
共有メモリ 複数のプログラムからアクセスできるメモリブロックです。共有メモリの概念は、通信の方法を提供し、冗長性の少ないメモリ管理を提供するために使用されます。 分散共有メモリ DSMと略されます 分散システムでの共有メモリの概念の実装です。 DSMシステムは、システム内のローカルの物理共有メモリを奪われた疎結合システムに共有メモリモデルを実装します。このタイプのシステムでは、分散共有メモリは、すべてのシステム(ノードとも呼ばれます)がアクセスできる仮想メモリ空間を提供します。 )分散階層の。 DSMの実装中に留意すべきいくつかの一般的な課題- 共有メモリにリモートで保存されて
-
BFSとDFSの違い
BFSとDFSはグラフ走査アルゴリズムです。 BFS 幅優先探索(BFS)アルゴリズムは、グラフを横方向に移動し、キューを使用して、反復で行き止まりが発生したときに、次の頂点を取得して検索を開始することを忘れないようにします。 DFS 深さ優先探索(DFS)アルゴリズムは、グラフを深さ方向に移動し、スタックを使用して、反復で行き止まりが発生したときに、次の頂点を取得して検索を開始することを忘れないようにします。 以下は、BFSとDFSの重要な違いです。 Sr。いいえ。 キー BFS DFS 1 定義 BFS、幅優先探索の略です。 DFS、
-
固定チャネル割り当てと動的チャネル割り当ての違い。
固定チャネル割り当て(FCA) 固定チャネル割り当て(FCA) は、セルに割り当てられる固定チャネルまたは音声チャネル割り当ての戦略です。チャネルが割り当てられると、それらは変更されません。このタイプの割り当ては、頻度の使用を最大化するために使用されます。ユーザーが電話をかけ、セルが占有されている場合、通話はブロックされます。他のセルからチャネルを借用すると、この問題が解決します。 動的チャネル割り当て(DCA) 動的チャネル割り当て(DCA) は、要求に基づいてチャネルまたは音声チャネルを割り当てる戦略です。ユーザーが電話をかけるたびに、ベースステーションはモバイルステーションセンターに
-
JPEGとPNGの違い
JPEGとPNGはどちらも、画像を保存するための画像形式の一種です。 JPEGは不可逆圧縮アルゴリズムを使用しており、画像はデータの一部を失う可能性がありますが、PNGは可逆圧縮アルゴリズムを使用しており、PNG形式では画像データの損失はありません。 JPEGとPNGの重要な違いは次のとおりです。 Sr。いいえ。 キー JPEG PNG 1 の略 JPEGはJointPhotographicExpertsGroupの略です。 PNGはPortableNetworkGraphicsの略です。 2 圧縮アルゴリズムタイプ JPEGは不可逆圧縮アルゴリズムを使用し