Presentation is loading. Please wait.

Presentation is loading. Please wait.

TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。

Similar presentations


Presentation on theme: "TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。"— Presentation transcript:

1 TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
struct card { char *name; /* 単語の先頭アドレス */ struct card *next; /* 次の構造体変数のアドレス */ };

2 TList リスト構造 : 単方向リスト カード2 カード0 cherry Apple  1 カード1 Orange  2

3 TList データはmallocやnewで一個づつ用意できる。 リストの最後は、ポインタをNULLにしておく。
配列と違い、メモリ上では連続しなくてもよい。 どの場所にも新しいデータを追加できる。 どの場所でもデータを削除できる。

4 通常の配列 int data[100]; 100個まで対応、追加できない。 int *data,number;
number = StrToInt(Edit1->Text); data = new int[number]; 実行時に最大値を決められるが、      追加はできない。

5 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

6 TList リスト構造 : 双方向リスト カード1 カード0 cherry  2 Apple  2 カード2 Orange  1  0

7 TList リスト構造を扱うためのクラス。 そのまま変数を作るのではなくて、 ポインタにnewによって実体を割り当てる。
TList *list = new TList; または TLst *list; list = new TList;

8 TList データを追加するには・・・ TList ではデータそのものを格納するのではなく データのアドレスを格納する。
Add関数:リストの最後にデータを追加する。 card data1; list->Add(&data1);

9 TList データをリストに挿入する TListでは、メンバ関数
void __fastcall Insert(int Index, void * Item); をつかうことで、Index番目にデータを挿入できる。 Indexは0番目から始まっている。

10 TList あるデータをリストから削除する TListでは、メンバ関数 void __fastcall Delete(int Index);
データ自体は消えていないことに注意。 単にリストから外れただけである。

11 TList リストに保存されているデータの数は? TListでは、メンバ変数 Countが、 リストに保存されているデータの数をもっている。

12 TList リストに保存されているデータは? TListでは、 __property void * Items[int Index];
できる。


Download ppt "TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。"

Similar presentations


Ads by Google