簡易データベース 情報画像工学実験 I : 実験2 担当:関屋大雄(工学部1号棟515室)

Slides:



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

5.データ構造入門 5-1.連結リスト(Linked List) 5-2.スタック(Stack) 5-3.キュー(Queue)
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
数理情報工学演習第一C プログラミング演習 (第3回 ) 2014/04/21
アルゴリズムとデータ構造 2013年6月18日
アルゴリズムとデータ構造 2010年7月5日
アルゴリズムとデータ構造 2012年6月14日
情報工学概論 (アルゴリズムとデータ構造)
情報システム基盤学 基礎1 アルゴリズムとデータ構造
アルゴリズムとデータ構造 第3回基本的なデータ構造(リスト) 2015/10/28 アルゴリズムとデータ構造 2015.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
データ構造とアルゴリズム 第4回 リスト ~ データ構造(1)~.
第5回 ポインタによるリスト、 循環・重連結リスト
データ構造とアルゴリズム 第13回 スタックとキュー
アルゴリズムとデータ構造 第2回 線形リスト(復習その2).
コンピュータアルゴリズム2 6. コンテナの実現 田浦
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
アルゴリズムとデータ構造 2011年6月14日
データ構造と アルゴリズム 第十一回 理工学部 情報システム工学科 新田直也.
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
構造体 構造体, 構造体とポインタの組み合わせ,.
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
二分探索木によるサーチ.
データ構造とプログラミング技法 (第2回) ー線形構造ー.
算法数理工学 第3回 定兼 邦彦.
データ構造とアルゴリズム 第4回 リスト ~ データ構造(1)~.
データ構造とアルゴリズム (第2回) ー線形構造ー.
iioLoadFile()とiioMallocImageBuffer()の補足
アルゴリズムとデータ構造1 2006年7月4日
iioLoadFile()とiioMallocImageBuffer()の補足
iioLoadFile()とiioMallocImageBuffer()の補足
データ構造とアルゴリズム 第6回 キュー ~ データ構造(2)~.
データ構造と アルゴリズム第4回 知能情報学メジャー 和田俊和.
木の走査.
アルゴリズムとデータ構造 補足資料11-1 「mallocとfree」
2005年度 データ構造とアルゴリズム 第3回 「C言語の復習:再帰的データ構造」
プログラミング 3 構造体(2).
アルゴリズムとデータ構造勉強会 第6回 スレッド木
二分探索木における要素削除 データ構造とプログラミング(10)
オブジェクト指向言語論 第八回 知能情報学部 新田直也.
データ構造と アルゴリズム 第六回 知能情報学部 新田直也.
データ構造と アルゴリズム 第五回 知能情報学部 新田直也.
Cプログラミング演習 第10回 二分探索木.
アルゴリズムとデータ構造1 2005年7月5日
2005年度 データ構造とアルゴリズム 第6回 「ハッシュ法を用いた探索」
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング 4 木構造とヒープ.
明星大学 情報学科 2012年度 後期   情報技術Ⅱ   第8回
基本情報技術概論I (第4回) 埼玉大学 理工学研究科 堀山 貴史
6.データ構造入門 6-1.連結リスト(Linked List) 6-2.スタック(Stack) 6-3.キュー(Queue)
データ構造とアルゴリズム 第11回 リスト構造(1)
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
情報基礎演習B 後半第2回 担当 岩村 TA 谷本君.
アルゴリズムとデータ構造1 2006年6月23日
アルゴリズムとデータ構造1 2009年7月2日
アルゴリズムとデータ構造1 2009年6月15日
アルゴリズムとデータ構造 補足資料11-3 「線形リストのオペレータ」
ネットワーク・プログラミング Cプログラミングの基礎.
高度プログラミング演習 (11).
プログラミング論 構造体
5. 任意長の合成データ:リスト プログラミング論I.
アルゴリズムとデータ構造 2010年6月17日
データ構造と アルゴリズム 第四回 知能情報学部 新田直也.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
マスク合成(のような処理) 出力画像 Out 入力画像1 In1 In1 In2 Out 入力画像2 In
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
TList リスト構造とは? 複数のデータを扱うために、 データの内容と、次のデータへのポインタを持つ構造体を使う。
7.木構造 7-1.データ構造としての木 7-2.2分探索木 7-3.高度な木.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Presentation transcript:

簡易データベース 情報画像工学実験 I : 実験2 担当:関屋大雄(工学部1号棟515室) E-mail : sekiya@faculty.chiba-u.jp TA:  山下哲孝 (M2) : n_yamashita@graduate.chiba-u.jp     横手俊倫(M1) : yokote@graduate.chiba-u.jp

目的 再帰的データ構造の理解 線形リスト構造 二分木構造 ファイルポインタの操作の理解 デバッグ方法の練習 情報画像工学実験I 実験2

課題 第1週 第2週 第3週 線形リスト構造の理解 二分探索木の理解 構造体ファイル入出力・ データベース処理プログラムの作成    データベース処理プログラムの作成 情報画像工学実験I 実験2

再帰的データ構造 自己参照構造体を基本に構成されるデータ構造 自己参照構造体 リスト構造 木構造 構造体のメンバとして自分自身と同じ構造体へのポインタを持つ構造体 情報画像工学実験I 実験2

リスト構造 typedef struct _list{ struct _list *next; //構造体のメンバとして自分自身と同じ構造体へのポインタ datatype data; } listelem, *list; head : NULL (リスト構造の末尾の目印) 情報画像工学実験I 実験2

リストの操作 list head=NULL; list p; p=(list)malloc(sizeof(listelem)); //領域確保 p->data = ・・・ p->next = head; head = p; 空のリストの作成 情報画像工学実験I 実験2

リストの操作 list p; p=(list)malloc(sizeof(listelem)); //領域確保 p->data = ・・・ p->next = head; head = p; 新しい構造体の作成、領域確保 *p *p 情報画像工学実験I 実験2

リストの操作 list head=NULL; list p; p=(list)malloc(sizeof(listelem)); //領域確保 p->data = ・・・ p->next = head; head = p; データ登録 ・・・ ・・・ 情報画像工学実験I 実験2

リストの操作 list head=NULL; list p; p=(list)malloc(sizeof(listelem)); //領域確保 p->data = ・・・ p->next = head; head = p; ・・・ ・・・ 情報画像工学実験I 実験2

リストへの挿入 list insert(list head, int key, int val) //keyのあとにvalを挿入 { list elem, cur; elem = (list)malloc(sizeof(listelem)); elem->data = val; for(cur = head; cur!= NULL; cur = cur->next){ if(key == cur->data){ elen->next = cur->next; cur->next = elem; return head; } elem->next = head; head = elem; head 5 2(key) 3 情報画像工学実験I 実験2

リストへの挿入 list insert(list head, int key, int val) //keyのあとにvalを挿入 { list elem, cur; elem = (list)malloc(sizeof(listelem)); elem->data = val; for(cur = head; cur!= NULL; cur = cur->next){ if(key == cur->data){ elen->next = cur->next; cur->next = elem; return head; } elem->next = head; head = elem; *elem head 4(val) 5 2(key) 3 情報画像工学実験I 実験2

リストへの挿入 list insert(list head, int key, int val) //keyのあとにvalを挿入 { list elem, cur; elem = (list)malloc(sizeof(listelem)); elem->data = val; for(cur = head; cur!= NULL; cur = cur->next){ if(key == cur->data){ elen->next = cur->next; cur->next = elem; return head; } elem->next = head; head = elem; elem head cur 4(val) cur 5 2(key) 3 情報画像工学実験I 実験2

リストへの挿入 list insert(list head, int key, int val) //keyのあとにvalを挿入 { list elem, cur; elem = (list)malloc(sizeof(listelem)); elem->data = val; for(cur = head; cur!= NULL; cur = cur->next){ if(key == cur->data){ elem->next = cur->next; cur->next = elem; return head; } elem->next = head; head = elem; elem head 4(val) cur 5 2(key) 3 情報画像工学実験I 実験2

リストへの挿入 list insert(list head, int key, int val) //keyのあとにvalを挿入 { list elem cur; elem = (list)malloc(sizeof(listelem)); elem->data = val; for(cur = head; cur!= NULL; cur = cur->next){ if(key == cur->data){ elen->next = cur->next; cur->next = elem; return head; } elem->next = head; head = elem; *elem head 4(val) cur 5 3 6 (In case of no key) その他の例外処理を考えること 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head 5 2(key) 3 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head cur 5 2(key) 3 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head prev cur 5 2(key) 3 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head prev cur 5 2(key) 3 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head prev cur 5 2(key) 3 情報画像工学実験I 実験2

リストからの削除 list delete(list head, int key)//keyを削除 { list cur, prev; for(cur = head; cur != NULL; cur = cur->next){ if(key == cur->data){ if(cur == head) head = cur->next; else prev->next = cur->next; free(cur); return head; } prev = cur; return NULL; head prev cur 5 3 情報画像工学実験I 実験2

今週のレポート 線形リスト構造において データ(整数型)の挿入 データの削除 昇順、降順の出力 を可能とするプログラムの作成。 情報画像工学実験I 実験2