ホームページ > よくある問題 > 線形連結リストは線形リストの連結された記憶構造ですか?

線形連結リストは線形リストの連結された記憶構造ですか?

(*-*)浩
リリース: 2019-10-24 09:50:34
オリジナル
14200 人が閲覧しました

データ構造内の各データ要素間の関係の複雑さに応じて、データ構造は通常、線形構造と非線形構造の 2 つの主要なタイプに分類されます。

線形連結リストは線形リストの連結された記憶構造ですか?

#線形リンク リストは、名前が示すように、チェーン リストに似ています。線形リンク リストの反対は次のとおりです。線形シーケンス リスト両方の違いは、線形シーケンス テーブルはメモリ内に連続領域を開く必要があるため、メモリに格納されるデータの状態は連続的ですが、線形リンク リストのメモリへの格納はランダムであることです。データ間の接続はポインタに依存します。 (推奨学習: Web フロントエンド ビデオ チュートリアル )

空ではないデータ構造が次の 2 つの条件を満たす場合:

①存在するのは 1 つだけですルート ノード ポイント;

②各ノードには最大 1 つの前件と最大 1 つの後件があります。データ構造は線形構造と呼ばれ、線形テーブルとも呼ばれます。したがって、線形リスト、スタックとキュー、および線形リンク リストはすべて線形構造ですが、バイナリ ツリーは非線形構造です。

リンクされたストレージ構造を持つ線形テーブル。任意のアドレスを持つ一連のストレージ ユニットを使用して、線形テーブルにデータ要素を格納します。論理的に隣接する要素は物理的に隣接している必要はなく、ランダムにアクセスすることはできません。 。一般にノードによって説明されます: ノード (データ要素を表す) = データ ドメイン (データ要素のイメージ) ポインタ ドメイン (後続の要素の格納場所を示す)

チェーン ストレージ構造では、データ構造のストレージデータ要素間の論理関係はポインタフィールドによって決定されますが、空間は不連続である可能性があり、各データノードの格納順序はデータ要素間の論理関係と一致しない可能性があります。連鎖記憶法は、線形構造と非線形構造の両方を表現するために使用できます。

一般に、線形リストの連結記憶構造では、各データノードの記憶シンボルが不連続であり、記憶空間内での各ノードの位置関係や論理関係も不整合となる。線形リンク リストの場合、先頭ポインタから開始して、各ノードのポインタに沿ってリンク リスト内のすべてのノードをスキャンできます。

線形リンク リストの構築は、リンク ポイントを動的に生成し、それらをリンク リストに順番にリンクするプロセスです。線形リンクリストの最初のリンク点のポインタをリストとする。

最初のリンク ポイントが生成されるとき、リンク リストは空です。リンク ポイントをリストに直接送信するだけです。データ要素が取得されるたびに、そのデータ要素に対してリンクポイントが生成され、取得したデータ要素のデータ情報が新規ノードのデータフィールドに送信される一方で、新規ノードのポインタフィールドはNULLに設定され、新しいノードは、リンクされたリストの最後に挿入されます。

次のアルゴリズムは、data.txt という名前のファイルから文字列を線形リンク リストのデータ要素として 1 行ずつ読み取ります。アルゴリズムは次のとおりです:

LinkList creatList() {
    LinkList r, p, list = NULL;
    char data[ 100 ];
 
    FILE *f = fopen( "data.txt", "rb" );
    while( fgets( data, 100, f ) )
    {
        p = ( LinkList )malloc( sizeof( LNode ) );
        if( p != NULL ){
            strcpy( p->data, data );
            p->link = NULL;
 
            if( list == NULL )
                list = p;
            else
                r->link = p;
            r = p;
        }
    }
    fclose( f );
 
    return list;
}
ログイン後にコピー

以上が線形連結リストは線形リストの連結された記憶構造ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート