3

スタックは抽象データ型と呼ばれ、インターフェースに他なりません。それでは、スタックがデータ構造のトピックに含まれるのはなぜですか。これはデータ構造ですか、それとも抽象データ型ですか。どちらも同じですか、それとも異なりますか。

4

4 に答える 4

5

ウィキペディアから:

Abstract data types純粋に理論的なエンティティであり、(とりわけ)抽象的なアルゴリズムの説明を簡素化し、データ構造を分類および評価するために使用されます

コンピュータサイエンスでは、adata structureは、効率的に使用できるようにデータをコンピュータに保存および整理する特定の方法です。

を説明する1つの方法は、stack後入れ先出し(LIFO)抽象データ型と線形データ構造です。スタックは、要素として任意の抽象データ型を持つことができますが、プッシュとポップ(またはプル)と呼ばれる2つの基本的な操作によって特徴付けられます。

したがって、抽象データ型は理論的であると結論付けることができますが、実現されるとデータ構造と呼ばれます。

より明確にするために:

データ型は、その操作の観点から定義され、その実装が非表示になっている場合、抽象的であると見なすことができます(したがって、効率上の理由などで、ある実装を常に別の実装に置き換えることができます。これにより、データ型の内容が妨げられることはありません。プログラム)。

于 2012-12-28T11:32:06.623 に答える
0

スタックは抽象データ型であり、線形データ構造とも呼ばれます。後入れ先出し(LIFO)戦略に従うため、データ構造の一部です。

于 2012-12-28T11:32:19.517 に答える
0

抽象データ型(ADT)は、データセットの仕様の理論上のセットと、セット内のデータに対して実行できる操作のセットです。データ型は、さまざまな具体的な実装から独立している場合、抽象と呼ばれます。

整数が加算、乗算、除算の演算をサポートしているとしましょう。

これらの操作は、乗算をサポートできないため、文字列データでは機能しません。したがって、整数はADTではありません。

今、あなたはポイントを取得します、

データ型に対する操作が、抽象データ構造と呼ばれるデータの種類を気にしない場合。たとえば、Stack、list、queue…ここでは、push()、pop()、add()、delete()などの操作をサポートします。プッシュ、ポップ、削除するものを気にします。

ここでは、実装のタイプ(リスト、スタック、キュー)に応じて、これらのADTの管理方法を決定します。

スタックが抽象データ型である理由

`Stack s = new Stack<>();
List l = new LinkedList<>();
s.push(45);
s.push("str");
//s.push("String");
if(s.peek().equals(45)){
    System.out.println("Treu");
}`

これ以上の説明は必要ないと思います。

于 2017-07-15T14:42:08.023 に答える
0

スタックには主にプッシュとポップの2つの操作があり、キューには挿入と削除があるため、スタックとキューは抽象データ型と呼ばれます。データのセットを操作する場合、セットに含まれている必要のあるデータのタイプはありません。たとえば、中置(つまり、a + b)から後置式(つまり、ab +)に変換する場合、そのセットには、括弧、数字のセット、文字のセット、または3つの組み合わせが含まれる場合があります。そのため、スタックとキューは抽象データ型と呼ばれます。

于 2019-03-28T12:46:51.917 に答える