プログラミング

 Computer >> コンピューター >  >> プログラミング >> プログラミング
  1. データ構造体の配列に対する操作

    ここでは、配列データ構造のいくつかの基本的な操作を示します。これらの操作は-です トラバース 挿入 削除 検索 更新 トラバースは、配列のすべての要素をスキャンしています。挿入操作は配列内の特定の位置にいくつかの要素を追加し、削除は配列から要素を削除し、削除後に他の要素のそれぞれの位置を更新します。検索は、配列に存在する要素を見つけることであり、updateは、指定された位置にある要素の値を更新します。より良いアイデアを得るために、1つのC++サンプルコードを見てみましょう。 例 #include<iostream> #include<vector> using

  2. データ構造における二分木表現

    ここでは、コンピュータのメモリでバイナリツリーを表現する方法を説明します。表現するには2つの異なる方法があります。これらは配列とリンクリストを使用しています。 このようなツリーが1つあるとします- 配列表現は、レベル順の方法を使用して要素をスキャンすることにより、ツリーデータを格納します。したがって、ノードをレベルごとに格納します。一部の要素が欠落している場合は、空白のままにします。上記のツリーの表現は以下のようになります- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 5

  3. データ構造の二分木とプロパティ

    このセクションでは、1つの二分木データ構造のいくつかの重要なプロパティを確認します。このような二分木があるとします。 一部のプロパティは-です レベル「l」のノードの最大数は$2^{l-1}$になります。ここで、レベルは、ルート自体を含む、ルートからノードへのパス上のノードの数です。ルートのレベルは1であると考えています。 高さhの二分木に存在するノードの最大数は$2^ {h}-1$です。ここで、heightは、ルートからリーフへのパス上のノードの最大数です。ここでは、1つのノードを持つ木の高さが1であると考えています。 n個のノードを持つ二分木では、可能な最小の高さまたは最小のレ

  4. データ構造における二分木探索

    このセクションでは、バイナリ検索ツリーに存在するキーをトラバースするためのさまざまなトラバーサルアルゴリズムについて説明します。これらのトラバーサルは、インオーダートラバーサル、プレオーダートラバーサル、ポストオーダートラバーサル、およびレベルオーダートラバーサルです。 このようなツリーが1つあるとします- インオーダートラバーサルシーケンスは、-5 8 10 15 16 20 23のようになります。 プレオーダートラバーサルシーケンスは、-10 5 8 16 15 20 23のようになります。 ポストオーダートラバーサルシーケンスは次のようになります− 8 5 15 23 20

  5. データ構造におけるレベル順序ツリートラバーサル

    このセクションでは、二分探索木のレベル順トラバーサル手法について説明します。 このようなツリーが1つあるとします- トラバーサルシーケンスは次のようになります:10、5、16、8、15、20、23 アルゴリズム levelOrderTraverse(root): Begin    define queue que to store nodes    insert root into the que.    while que is not empty, do       item := ite

  6. データ構造におけるポストオーダーツリートラバーサル

    このセクションでは、二分探索木のポストオーダートラバーサル手法(再帰的)について説明します。 このようなツリーが1つあるとします- トラバーサルシーケンスは次のようになります:8、5、15、23、20、16、10 アルゴリズム postorderTraverse(root): Begin    if root is not empty, then       postorderTraversal(left of root)       postorderTraversal(right of root)

  7. データ構造におけるプレオーダーツリートラバーサル

    このセクションでは、二分探索木のための事前順序トラバーサル手法(再帰的)について説明します。 このようなツリーが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)    

  8. データ構造の二分探索木

    二分探索木は、いくつかの特性を持つ二分木です。これらのプロパティは次のようなものです- すべての二分探索木は二分木です 左の子はすべて、ルートよりも価値が低くなります すべての正しい子はrootよりも大きな価値を持ちます 理想的な二分探索木は、同じ値を2回保持することはありません。 このようなツリーが1つあるとします- このツリーは1つの二分探索木です。上記のすべてのプロパティに従います。要素をインオーダートラバーサルモードにトラバースすると、5、8、10、15、16、20、23を取得できます。これをC++コードで実装する方法を理解するために1つのコードを見てみましょう。 例 #

  9. グラフとその走査アルゴリズム

    このセクションでは、グラフデータ構造とそのトラバーサルアルゴリズムについて説明します。 グラフは1つの非線形データ構造です。これは、いくつかのノードとそれらの接続されたエッジで構成されています。エッジは、ディレクターまたは無向の場合があります。このグラフは、G(V、E)として表すことができます。次のグラフは、G({A、B、C、D、E}、{(A、B)、(B、D)、(D、E)、(B、C)、(C、A )}) グラフには、2種類のトラバーサルアルゴリズムがあります。これらは、幅優先探索および深さ優先探索と呼ばれます。 幅優先探索(BFS) 幅優先探索(BFS)トラバーサルはアルゴリズムであ

  10. データ構造におけるDFSとBFSのアプリケーション

    ここでは、グラフのDFSアルゴリズムとBFSアルゴリズムのさまざまなアプリケーションを確認します。 DFSまたは深さ優先探索はさまざまな場所で使用されます。一般的な使用法は次のとおりです- 重み付けされていないグラフでDFSを実行すると、すべてのペアの最短パスツリーに対して最小スパニングツリーが作成されます DFSを使用して、グラフ内のサイクルを検出できます。 BFS中に1つのバックエッジを取得する場合、1つのサイクルが必要です。 DFSを使用して、指定された2つの頂点uとvの間のパスを見つけることができます。 トポロジカルソートは、ジョブ間の特定の依存関係からジョブをスケジュールする

  11. データ構造の最小スパニングツリー

    スパニングツリー は、最小数のエッジで接続されたすべての頂点を持つ無向グラフのサブセットです。 すべての頂点がグラフで接続されている場合、少なくとも1つのスパニングツリーが存在します。グラフには、複数のスパニングツリーが存在する場合があります。 最小スパニングツリー 最小スパニングツリー(MST) は、接続された重み付き無向グラフのエッジのサブセットであり、すべての頂点を可能な限り最小の合計エッジ重みで接続します。 MSTを導出するには、プリムのアルゴリズムまたはクラスカルのアルゴリズムを使用できます。したがって、この章ではプリムのアルゴリズムについて説明します。 すでに説明したように、

  12. データ構造におけるベルヌーイ分布

    ベルヌーイ分布は、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

  13. データ構造における二項分布

    二項分布は、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}

  14. データ構造における幾何分布

    幾何分布は、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

  15. データ構造における負の二項分布

    負の二項分布は、負の二項離散分布に従って整数を生成する乱数分布です。これはパスカルの分布として知られているため、負の二項分布は次のように書くことができます $$ 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

  16. データ構造における最適な二分木

    整数のセットはソートされた順序で与えられ、別の配列は頻度カウントに頻繁に与えられます。私たちのタスクは、これらのデータを使用してバイナリ検索ツリーを作成し、すべての検索の最小コストを見つけることです。 サブ問題の解を解いて保存するために、補助配列cost [n、n]が作成されます。コストマトリックスは、ボトムアップ方式で問題を解決するためのデータを保持します。 入力 −ノードおよび頻度としてのキー値。 Keys = {10, 12, 20} Frequency = {34, 8, 50} 出力 −最小コストは142です。 これらは、指定された値から可能なBSTです。 ケース1の

  17. データ構造における凸包の例

    ここでは、凸包の1つの例を示します。一連のポイントがあるとします。与えられたすべてのポイントをカバーするポイントの数を減らしてポリゴンを作成する必要があります。このセクションでは、凸包を取得するためのJarvisMarchアルゴリズムについて説明します。 ジャービスマーチアルゴリズムは、特定のデータポイントのセットから凸包のコーナーポイントを検出するために使用されます。 データセットの左端のポイントから開始して、反時計回りの回転によって凸包内のポイントを保持します。現在のポイントから、現在のポイントからのそれらのポイントの方向を確認することにより、次のポイントを選択できます。角度が最大の場

  18. データ構造におけるスタックADT

    抽象データ型は特殊な種類のデータ型であり、その動作は一連の値と一連の操作によって定義されます。これらのデータ型を使用できるため、キーワード「Abstract」が使用され、さまざまな操作を実行できます。しかし、これらの操作がどのように機能しているかは、ユーザーには完全に隠されています。 ADTはプリミティブデータ型で構成されていますが、操作ロジックは非表示になっています。 ここにスタックADTが表示されます。これらは、StackADTのいくつかの操作または機能です。 isFull()、これはスタックがいっぱいかどうかを確認するために使用されます isEmpry()、これはスタックが空かど

  19. データ構造における検索方法の比較

    場合によっては、いくつかのキーを見つけるためにさまざまな検索スキームを実行します。このセクションでは、シーケンシャル検索とバイナリ検索の2つの検索手法の基本的な違いを説明します。 シーケンシャル検索 二分探索 時間計算量はO(n) 時間計算量はO(log n) 一定時間内に最初の位置に存在するキーを検索します 一定時間内に中央位置に存在するキーを検索します コンテナ内の要素のシーケンスは影響しません。 要素はコンテナ内で並べ替える必要があります 配列とリンクリストを使用してこれを実装できます リンクリストに直接実装することはできません。これを実装するには、リストの基本

  20. データ構造の並べ替え方法の比較

    ここでは、いくつかのソート方法を示します。 200以上のソート手法があります。それらのいくつかを見るでしょう。一部の並べ替え手法は比較ベースの並べ替えであり、一部は非比較ベースの並べ替え手法です。 比較ベースのソート手法には、バブルソート、選択ソート、挿入ソート、マージソート、クイックソート、ヒープソートなどがあります。これらの手法では、値が比較され、さまざまなフェーズでソートされた位置に配置されるため、これらの手法は比較ベースのソートと見なされます。ここでは、これらの手法の時間計算量を確認します。 分析タイプ バブルソート 選択ソート 挿入ソート マージソート クイックソート ヒープソー

Total 1466 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:2/74  20-コンピューター/Page Goto:1 2 3 4 5 6 7 8