プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

データ構造におけるスタックのアプリケーション


スタックは後入れ先出し(LIFO)データ構造です。このデータ構造には、さまざまな側面でいくつかの重要なアプリケーションがあります。これらは以下のようなものです-

  • 式の処理-
    • 中置から後置または中置から接頭辞への変換-

      スタックを使用して、一部のインフィックス式を同等のポストフィックスまたは同等のプレフィックスに変換できます。これらの接尾辞または接頭辞表記は、コンピューターでいくつかの式を表現するために使用されます。これらの式は、中置式にはあまり馴染みがありませんが、いくつかの大きな利点もあります。演算子の順序と括弧を維持する必要はありません。

    • 接尾辞または接頭辞の評価-

      接頭辞または後置表記に変換した後、結果を取得するために式を評価する必要があります。そのためには、スタックデータ構造の助けも必要です。

  • バックトラッキング手順-

    バックトラッキングは、アルゴリズム設計手法の1つです。その目的のために、私たちは何らかの方法に飛び込みます。その方法が効率的でない場合は、前の状態に戻って他のいくつかのパスに入ります。現在の状態に戻すには、前の状態を保存する必要があります。そのためには、スタックが必要です。バックトラックの例としては、ナイトツアーの問題やN-クイーンの問題などの解決策を見つけることがあります。

  • スタックのもう1つの優れた用途は、関数の呼び出しと戻りのプロセス中です。他の1つの関数から関数を呼び出す場合、その関数呼び出しステートメントが最初のステートメントではない可能性があります。関数を呼び出した後、関数領域から制御を離れた場所に戻る必要もあります。したがって、再起動するのではなく、タスクを再開します。そのため、プログラムカウンターのアドレスをスタックに格納し、関数本体に移動して実行します。実行が完了すると、スタックからアドレスがポップアウトされ、プログラムカウンターに割り当てられて、タスクが再開されます。

  1. データ構造のB+ツリー

    ここでは、B+ツリーとは何かを確認します。 B +ツリーは、Bツリーの拡張バージョンです。このツリーは、Bツリーのより良い挿入、削除、および検索をサポートします。 Bツリー、キー、およびレコード値は、内部ノードとリーフノードに格納されます。 B +ツリーレコードでは、リーフノードに保存できます。内部ノードはキー値のみを保存します。 B+ツリーのリーフノードもリンクリストのようにリンクされています B+ツリーの例 − これは、検索、挿入、削除などの基本的な操作をサポートします。各ノードで、アイテムが並べ替えられます。位置iの要素には、その前後に子があります。したがって、以前に痛んだ

  2. ハーフエッジデータ構造

    はじめに テンプレートパラメータまたはハーフエッジデータ構造(HalfedgeDSと略記)のHDSは、平面マップ、多面体、またはその他の方向付け可能な2次元など、頂点、エッジ、および面の入射情報を維持できるエッジ中心のデータ構造として定義されます。ランダムな次元に埋め込まれたサーフェス。各エッジは、反対方向の2つのハーフエッジに分割されます。各ハーフエッジには、1つの入射面と1つの入射頂点が格納されます。各面と各頂点に1つの入射ハーフエッジが格納されます。ハーフエッジデータ構造のバリエーションを減らすと、面のハーフエッジポインタや面の保存など、この情報の一部を削除できます。 ハーフエッジデ