ホームページ  >  記事  >  シーケンシャル スタックと比較して、チェーン スタックの明らかな利点は何ですか?

シーケンシャル スタックと比較して、チェーン スタックの明らかな利点は何ですか?

青灯夜游
青灯夜游オリジナル
2021-11-08 13:57:1517489ブラウズ

シーケンシャル スタックと比較した場合、チェーン スタックの利点は、スタックが通常はいっぱいにならないことです。シーケンシャルスタックは配列で実装されるため、スタックのサイズを事前に決定する必要があり、メモリ使用効率が高くなく、配列スペース不足によるオーバーフローの問題が避けられませんが、チェーンスタックは動的に適用されます。メモリ用なので、通常、スタックがいっぱいになることはありません。

シーケンシャル スタックと比較して、チェーン スタックの明らかな利点は何ですか?

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

シーケンシャル スタックと比較すると、チェーン スタックには明らかな利点があります。通常、スタックがいっぱいになることがありません。

シーケンシャル スタックは配列で実装されるため、スタックのサイズを事前に決定する必要があります。メモリの使用効率はあまり高くなく、配列スペースの不足によるオーバーフローの問題は解決できません。チェーン スタックは動的ですが、メモリを適用するとき、スタックは通常はいっぱいではありませんが、空のスタックが表示されるためです。

チェーン スタックとシーケンシャル スタックはどちらもスタックであるため、スタックは先入れ後出しであり、挿入および削除操作はスタックの先頭でのみ実行できるため、チェーン スタックには利点がありません。挿入および削除操作で順次スタック上で実行されます。

スタック

データ構造としてのスタックは、一端でのみ挿入および削除できる特殊な線形テーブルです。データは後入れ先出しの原則に従って保存されます。最初に入力されたデータはスタックの一番下にプッシュされ、最後のデータはスタックの一番上に置かれます。データを読み取る必要がある場合、データはスタックの先頭からポップされます (最後のデータが最初に読み出されます)。スタックにはメモリ機能があり、スタックへの挿入や削除の際にスタックのボトムポインタを変更する必要はありません。

スタックは、同じ端で挿入と削除の操作を可能にする特別な線形リストです。挿入と削除が可能な端をスタックの最上部、もう一方の端を最下部と呼びます スタックの最下部は固定され、スタックの上部はフローティングになります スタックの要素数が 0 の場合、それは空のスタックと呼ばれます。一般に挿入をPUSH、削除をポッピング(POP)と呼びます。スタックは先入れ後出しリストとも呼ばれます。

スタックは、関数が呼び出されたときにブレークポイントを保存するために使用できます。スタックは再帰を実行するときに使用されます。

スタックはプログラムの実行において重要な役割を果たします。最も重要なことは、関数の呼び出し時に必要なメンテナンス情報 (スタック フレームまたはアクティビティ レコードと呼ばれることが多い) がスタックに保存されることです。スタック フレームには通常、次の情報の側面が含まれています:

1.関数の戻りアドレスとパラメータ

##2.一時変数: 関数の非静的ローカル変数や、コンパイラーによって自動的に生成されるその他の一時変数が含まれます。

関連知識の詳細については、

FAQ 列をご覧ください。

以上がシーケンシャル スタックと比較して、チェーン スタックの明らかな利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。