データ構造学習ノート --- 線形テーブル (1)

1. 線形テーブルに関して、私たちがよく触れるストレージ構造には、シーケンシャル ストレージとチェーン ストレージが含まれます。シーケンシャル記憶構造のアドレスは連続している(つまり、連続した記憶空間を占有する必要がある)ため、アドレスを計算することでランダムアクセスを実現できます。リンクされたストレージ構造のストレージ アドレスは必ずしも連続しているわけではなく、各ノードのポインタを介してシーケンシャルにのみアクセスできます。順次ストレージ構造を使用する場合、要素の挿入および削除には多数の要素を移動する必要があり、挿入および削除操作には不便です。チェーン ストレージ構造は挿入および削除操作を容易にするために使用されますが、検索は順次にのみ実行でき、時間計算量は O(n) です。

2. 線形テーブル内のデータ要素は抽象 (つまり、不定) データ型を持ち、数値、文字、レコードなどのさまざまな型にすることができます。特定のアプリケーション プログラムを設計する場合、データ要素の抽象型は特定のデータ型によって決定されます。
線形テーブルに含まれるデータ要素の数は任意ではなく、制限する必要があります。
空ではないテーブル L=(a 1 , a 2 ,…an ) では、隣接するデータ要素のペア a i-1 と ai (1<i≦n) (ai -1 ,ai) の間に順序関係が存在します。 )、i-1はaiの前身と呼ばれ、aiはi-1の後継と呼ばれます。このシーケンスでは、 1 には先行要素がなく、 an には後続要素がありません。他のすべての要素には、先行要素と後続要素が 1 つだけあります。それが空のリストである場合、またはリスト内に要素が 1 つだけある場合、その要素には直接の先行ノードと直接の後続ノードがありません。

3. リニアテーブルの逐次記憶構造と連鎖記憶構造にはそれぞれ一長一短があり、一概にどちらが優れているとは言えません。順次ストレージは見つけやすいですが、頻繁な挿入と削除にはつながりません。線形テーブルの連結記憶構造は挿入・削除に便利であり、データ要素の挿入・削除を頻繁に行う場合に適している。

 

おすすめ

転載: blog.csdn.net/qiaoqi17/article/details/108004496