ホームページ  >  記事  >  Java  >  Javaの理論的基礎 - スタック(概要の共有)

Javaの理論的基礎 - スタック(概要の共有)

WBOY
WBOY転載
2022-03-11 17:11:422123ブラウズ

この記事では、java に関連する知識を提供します。主に、スタックの基本操作、スタックのメソッドとプロパティ、スタックの 2 つの実装など、スタックに関する関連問題を紹介します。スタック、メソッドなど、皆さんのお役に立てば幸いです。

Javaの理論的基礎 - スタック(概要の共有)

## 推奨学習: 「

java Learning Tutorial

1. スタックの概念

スタックデータ構造としては、stack とも呼ばれる (stack) は、一方の端でのみ挿入および削除操作を実行できる特殊な線形テーブルです。 演算が限定された線形テーブルです。制限として、挿入および削除操作はテーブルの一端でのみ許可されます。この端はスタックの上部と呼ばれ、もう一方の端は底部と呼ばれます。スタックには先入れ後出し機能があります。

Javaの理論的基礎 - スタック(概要の共有)#2. スタックの基本操作

スタックの構築

: スタックを使用する前に、まず空のスタックを構築します スタック、プッシュ
: スタックに新しい要素を追加します ポップ
: スタックの一番上にある要素を削除します スタックを読み取ります
: 要素をクエリします現在のスタックの一番上 スタックのサイズを取得し、スタックをクリアします。 。 。
3. スタックのメソッドと属性

Javaの理論的基礎 - スタック(概要の共有)
##Push はスタックにプッシュするためのものです。Javaの理論的基礎 - スタック(概要の共有)

Pop はスタックを飛び出すための
4. スタックの2つの実装方法
① 配列(配列リスト)

配列は固定長(要素数)である必要があります。事前に定義されています

② リンク リストJavaの理論的基礎 - スタック(概要の共有)

リンク リストは小さな部屋で構成されているように見えます。各部屋はポイントへのポインタに依存しています。ポインタでリンクされたリンクリストは、物理記憶装置上の非連続かつ非順次の記憶構造であり、データ要素の論理的順序は、リンクリストのポインタアドレスによって実現されます。 2 つのノードが含まれており、1 つは要素のデータを格納するフィールド (メモリ空間) であり、もう 1 つは次のノード アドレスを指すポインタ フィールドです。ポインタが指す場所に応じて、リンク リストは、単一リンク リスト、二重リンク リスト、循環リンク リストなどのさまざまな構造を形成できます。リンク リスト

配列


利点: Javaの理論的基礎 - スタック(概要の共有)

1. インデックスによる要素のクエリは高速です

2. インデックスによる配列の走査は便利です

欠点:
1. あらかじめ固定長(要素数)を定義しておきます
2、データの動的な増減には対応できません。

データが増加すると、当初定義された要素数を超えて配列の範囲外になる可能性があります。
データが減少すると、メモリの無駄が発生します。

リンク リスト

利点:

1. 容量を初期化する必要がなく、要素を自由に追加または削除できます;
2. 要素を追加または削除する場合、必要なのは前後の 2 つの要素ノードのポインタ フィールドをアドレスを指すように変更するため、追加と削除が高速になります。

欠点:
1. 多数のポインタ フィールドが含まれるため、多くのスペースを必要とし、要素を見つけるにはリンクされたリストをたどる必要があり、非常に時間がかかります。


データに素早くアクセスしたい場合、要素の挿入や削除が頻繁ではなく、選択配列のデータ量が少なく、頻繁に追加や削除操作が必要な場合

要素へのアクセス 高効率の要件がない場合は、リンク リストを選択してください

6. スタックの役割

6.1. ローカル変数の保存:


ローカル変数は次のとおりです。常にグローバル変数を使用する代わりに、関数でも使用できます。では、ローカル変数を格納する適切な場所はどこでしょうか? つまり、関数が入れ子になっているときに競合が発生せず、効率を重視する必要があります。

6.2 パラメータの受け渡し

パラメータを渡す目的は、N 個の状況に対して N セットの同様のメソッドを作成することなく、1 つのメソッドをより多くの状況に適用できるようにコードを再利用することです。では、パラメータの転送にはどのような方法が使用されるのでしょうか?以下を選択できます。
6.3 レジスタの値を保存します

##レジスタによって渡されたパラメータに矛盾がある場合は、レジスタの値を一時的にスタックにプッシュできます

6.4 その他の関数
#1) スタックは各関数アーキテクチャの基礎であり、関数の再利用を可能にします。

2) 問題が発生した場合、スタックを利用することで問題が発生した状況を把握できます。

3) スタックは、オペレーティング システムのマルチタスク モードを構築するための基礎です。
推奨学習:「

Java チュートリアル

以上がJavaの理論的基礎 - スタック(概要の共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。