[DS]シーケンステーブル

1497 ワード

1.線形テーブルの最初のテーブル項目をヘッダと呼び、最後のテーブル項目をテーブルテールと呼ぶ.(リニアテーブルはリニア構造の典型)
2.リニア・テーブルの格納は、シーケンス・ストレージとチェーン・ストレージの2つを表します.シーケンスストレージ方式で実現される線形テーブルをシーケンステーブルと呼び,配列をテーブルのストレージ構造として用いる.
3.リニアテーブルの格納方式は、配列ベースの格納表現、チェーンテーブルベースの格納表現、ハッシュベースの格納表現など様々な方式があり、配列ベースの格納表現はその中で最も簡単で、最もよく使われるものであり、シーケンステーブルはリニアテーブルの配列ベースの格納表現である.
4.シーケンステーブルの定義は、線形テーブルのすべてのテーブル項目を、その論理順序に従ってコンピュータ記憶で指定された記憶位置から始まる連続した記憶空間に順次記憶することである.
特徴は次のとおりです.
1)順序テーブルにおいて、各表象の論理順序は、その格納された物理順序と一致し、すなわち、i番目のテーブル項目はi番目の物理位置に格納される.
2)順序テーブル内のすべてのテーブル項目に対して,順序アクセスもランダムアクセスも可能である.
5.順序テーブルの格納方法は2種類あります.
1)静態方式:記憶配列の大きさと空間は事前に固定的に割り当てられており、データ空間がいっぱいになると、新しいデータを加えるとオーバーフローが発生し、このとき記憶空間が拡張できず、プログラムの運行を停止する.静的ストレージ表示:
typedef int T
tpyedef struct{
    T data[maxSize];// 
    int n;
}

  
2)動的方式:データを格納する空間はプログラムが実行中に動的記憶によって割り当てられた文によって割り当てられたもので、いったんデータ空間がいっぱいになると、元の記憶空間の代わりにもっと大きな記憶空間を割り当てることができ、それによって配列空間を拡張する目的を達成することができる.動的記憶表示:
typedef int T
tpyedef struct{
    T *data;
    int n;
}

操作にはresize操作があり,本来割り当てられた空間が足りない場合,責任:1)新しい割り当てを要求する.2)配列をコピーする;3)古い配列を削除する.dataは配列を指すポインタです
 
順序テーブルと1次元配列の違い:
1つの配列には2つの操作しかありません.ユーカリ配列の下付きメモリは、配列の下付きメモリによって取得されます.このように、1次元配列にはデータがジャンプ式で不連続に格納されている可能性があります(言い換えれば、1つの配列にはa[0]hとa[6]しか有効なデータが格納されていない可能性がありますが、中間には格納されていません).しかし、順序表は異なり、データはコンパクトに並んでいるに違いない.