線形データ構造と非線形データ構造の違いは何ですか

目次:

Anonim

NS 主な違い 線形データ構造と非線形データ構造の間には、 線形データ構造はデータを順次配置し、非線形データ構造はデータを階層的に配置し、データ要素間の関係を作成します。

データ構造は、データを保存および管理する方法です。データ構造には、線形データ構造と非線形データ構造の2種類があります。線形データ構造により、アイテムを順番にトラバースできます。一方、非線形データ構造では、各要素が1つ以上の要素にアタッチされ、アイテム間の関係が作成されます。

線形データ構造、非線形データ構造

線形データ構造とは

線形データ構造は、データ要素が順番に並んだデータ構造です。線形データ構造では、隣接する要素が互いに接続されます。ただし、これらのデータ構造では、メモリの使用率が向上しません。したがって、メモリの浪費につながる可能性があります。

配列、リンクリスト、スタック、およびキューは、線形データ構造の一般的な例です。配列には、同じデータ型のデータ要素が格納されます。リンクリストは、ノードのセットを含むデータ構造です。各ノードには、別のノードのデータとアドレスが格納されます。これらのノードは互いに接続して、チェーンに似た構造を形成します。

スタックは、実際のスタックと同様に動作する抽象データ型です。 LIFO(後入れ先出し)の順序に従います。つまり、挿入された最後の要素はスタックの一番上にあります。したがって、最初にアクセスする要素は、最後に挿入された要素です。さらに、要素をスタックに挿入することをプッシュ操作と呼び、要素をスタックから削除することをポップ操作と呼びます。

図1:線形データ構造–スタック

キューも抽象的なデータ構造ですが、要素を挿入するためと要素を削除するための2つの端があります。要素の挿入はエンキューと呼ばれ、要素の削除はデキューと呼ばれます。

非線形データ構造とは

非線形データ構造は、データを非順次的に格納します。これは、子要素と親要素の間に階層関係を形成します。つまり、データ項目は相互に接続され、それらの間に関係が作成されます。要素を挿入したり、要素を削除したり、要素を順番に調べたりすることはできません。通常、これらのデータ構造はメモリ効率が高くなります。

ツリーとグラフは、最も一般的な非線形データ構造です。ツリーデータ構造は、エッジで接続されたノードを表します。二分木はツリーデータ構造です。バイナリツリーのすべてのノードは、最大2つの子を持つことができます。

図2:非線形データ構造–バイナリツリー

たとえば、上記の二分木では、2が親ノードで、7と5が子ノードです。さらに、グラフはノードとエッジで構成される別のデータ構造です。

線形データ構造と非線形データ構造の違い

意味

線形データ構造は、要素が隣接して接続された状態でデータ項目を整然と配置するタイプのデータ構造であり、非線形データ構造は、データをソートされた順序で配置してデータ要素間の関係を作成するタイプのデータ構造です。 。したがって、これが線形データ構造と非線形データ構造の主な違いです。

メモリ使用率

線形データ構造ではメモリ使用率が非効率的ですが、非線形データ構造ではメモリ使用率が効率的です。したがって、これは線形データ構造と非線形データ構造のもう1つの違いです。

レベル

さらに、線形データ構造はシングルレベルですが、非線形データ構造はマルチレベルです。

実装

実装は、線形データ構造と非線形データ構造のもう1つの違いです。線形データ構造を実装する方が簡単ですが、非線形データ構造を実装することは困難です。

配列、リンクリスト、キュー、およびスタックは線形データ構造のいくつかの例であり、ツリーとグラフは非線形データ構造のいくつかの例です。これは、線形データ構造と非線形データ構造のもう1つの違いです。

結論

データ構造は、データを効率的に使用するためにデータを整理するのに役立ちます。データ構造には、主に線形データ構造と非線形データ構造の2種類があります。線形データ構造と非線形データ構造の主な違いは、線形データ構造はデータを順次配置するのに対し、非線形データ構造はデータを階層的に配置してデータ要素間の関係を作成することです。

リファレンス:

1.「ツリー–Javatpoint」。 Www.javatpoint.com、ここから入手可能2。 「DSグラフ–Javatpoint」。 Www.javatpoint.com、ここから入手できます。

画像提供:

1.ユーザー:Boivieによる「データスタック」– Inkscapeで作成、ユーザー:Boivie。 Image:Stack-sv.pngに基づいており、2004年にCommons Wikimedia2を介してsv:User:Shrimp(パブリックドメイン)によってスウェーデン語版ウィキペディアにアップロードされました。 Derrick Coetzeeによる「バイナリツリー」– Commons Wikimediaによる自作(パブリックドメイン)

線形データ構造と非線形データ構造の違いは何ですか