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

Slides:



Advertisements
Similar presentations
アルゴリズムとデータ構造 第2回 線形リスト(復習).
Advertisements

Generic programming と STL
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報処理演習C2 ファイル操作について (2).
5.データ構造入門 5-1.連結リスト(Linked List) 5-2.スタック(Stack) 5-3.キュー(Queue)
オブジェクト指向プログラミング(4) 静的分析(2)
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
データ構造とアルゴリズム 第10回 mallocとfree
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
プログラミング序論演習.
情報工学概論 (アルゴリズムとデータ構造)
アルゴリズムとデータ構造 第3回基本的なデータ構造(リスト) 2015/10/28 アルゴリズムとデータ構造 2015.
第8回 プログラミングⅡ 第8回
アルゴリズムとデータ構造 2011年6月13日
構造体.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
データ構造とアルゴリズム 第4回 リスト ~ データ構造(1)~.
アルゴリズムとデータ構造 第2回 線形リスト(復習その2).
INSERT(x,p,L)の例 (一部) 磯 直行 2009年5月5日
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
構造体 構造体, 構造体とポインタの組み合わせ,.
ネットワークプログラミング 第4回「C言語の基礎~ポインタと配列」
データ構造とアルゴリズム 第4回 リスト ~ データ構造(1)~.
データ構造とアルゴリズム 第5回 スタック ~ データ構造(2)~.
ローカル変数とグローバル変数 ローカル変数  定義された関数内だけで使用できる変数 グローバル変数 プログラム全体で使用できる変数.
データ構造とアルゴリズム 第6回 キュー ~ データ構造(2)~.
精密工学科プログラミング基礎 第10回資料 (12/18実施)
プログラミング 4 記憶の割り付け.
アルゴリズムとデータ構造 補足資料11-1 「mallocとfree」
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
メモリの準備 メモリには、その準備の方法で2種類ある。 静的変数: コンパイル時にすでにメモリのサイズがわかっているもの。 普通の変数宣言
オブジェクト指向 プログラミング 第七回 知能情報学部 新田直也.
第7回 プログラミングⅡ 第7回
第11回 プログラミングⅡ 第11回
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
データ構造と アルゴリズム 第五回 知能情報学部 新田直也.
Cプログラミング演習 第10回 二分探索木.
アルゴリズムとデータ構造1 2005年7月5日
プログラミング基礎B 文字列の扱い.
アルゴリズムとデータ構造1 2005年6月24日
アルゴリズムとデータ構造 2010年6月21日
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
簡易データベース 情報画像工学実験 I : 実験2 担当:関屋大雄(工学部1号棟515室)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
精密工学科プログラミング基礎Ⅱ 第5回資料 今回の授業で習得してほしいこと: 構造体 (教科書 91 ページ)
6.データ構造入門 6-1.連結リスト(Linked List) 6-2.スタック(Stack) 6-3.キュー(Queue)
データ構造とアルゴリズム 第11回 リスト構造(1)
文字列へのポインタの配列 static char *lines[MAXLINES]; lines[0] NULL
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2012年6月11日
アルゴリズムとデータ構造1 2006年6月23日
第11回放送授業.
アルゴリズムとデータ構造1 2009年6月15日
アルゴリズムとデータ構造 補足資料11-3 「線形リストのオペレータ」
ネットワーク・プログラミング Cプログラミングの基礎.
プログラミング論 構造体
アルゴリズムとデータ構造 2010年6月17日
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
プログラミング演習II 2004年11月 16日(第5回) 理学部数学科・木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
左右反転と180度回転 [0][xsize – 1] [0][0] → i ↓ j [ysize – 1][xsize – 1]
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
C言語講座第5回 2017 構造体.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
プログラミング 2 静的変数.
Presentation transcript:

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]; できる。