TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。 struct card { char *name; /* 単語の先頭アドレス */ struct card *next; /* 次の構造体変数のアドレス */ };
TList リスト構造 : 単方向リスト カード2 カード0 cherry Apple 1 カード1 Orange 2
TList データはmallocやnewで一個づつ用意できる。 リストの最後は、ポインタをNULLにしておく。 配列と違い、メモリ上では連続しなくてもよい。 どの場所にも新しいデータを追加できる。 どの場所でもデータを削除できる。
通常の配列 int data[100]; 100個まで対応、追加できない。 int *data,number; number = StrToInt(Edit1->Text); data = new int[number]; 実行時に最大値を決められるが、 追加はできない。
TList リスト構造なら、データを任意の場所に追加できる。 Apple 3 Orange 2 カード0 カード1 cherry カード2 3 Orange 2 カード0 カード1 cherry カード2 Apple 1 Orange 2 カード0 カード1 cherry カード2 peach 1 カード3
TList リスト構造 : 双方向リスト カード1 カード0 cherry 2 Apple 2 カード2 Orange 1 0
TList リスト構造を扱うためのクラス。 そのまま変数を作るのではなくて、 ポインタにnewによって実体を割り当てる。 TList *list = new TList; または TLst *list; list = new TList;
TList データを追加するには・・・ TList ではデータそのものを格納するのではなく データのアドレスを格納する。 Add関数:リストの最後にデータを追加する。 card data1; list->Add(&data1);
TList データをリストに挿入する TListでは、メンバ関数 void __fastcall Insert(int Index, void * Item); をつかうことで、Index番目にデータを挿入できる。 Indexは0番目から始まっている。
TList あるデータをリストから削除する TListでは、メンバ関数 void __fastcall Delete(int Index); データ自体は消えていないことに注意。 単にリストから外れただけである。
TList リストに保存されているデータの数は? TListでは、メンバ変数 Countが、 リストに保存されているデータの数をもっている。
TList リストに保存されているデータは? TListでは、 __property void * Items[int Index]; できる。