演習問題1
(1)循環リストのイメージ図を書こう (教科書を真似る)
(2)循環リストにおいて、データを追加するにはどのようなアルゴリズムが必要になるか?
ヒント:線形リストではどの ように追加したか思い出そう.
演習問題2
(1)双方向リストのイメージ図を書こう(教科書を真似る)
(2) 双方向リストを表現する構造体を書け.
(3)双方向リストにデータを追加するにはどのようなアルゴリズムが必要になるか?
演習問題3
(1)循環・双方向リストのイメージ図を書こう(教科書を真似る)
(2)循環・双方向リストを表現する構造体を書け
(3)循環・双方向リストにデータを追加するにはどのようなアルゴリズムが必要になるか?
演習問題4
循環リストの先頭へ追加された状態(および末尾へ追加された状態)の図をそれぞれ書いてください。(1枚づつでOK)
その状態 になるための、C言語のコードをそれぞれ書いてください。
演習問題5
次のプログラムを改良せよ
dllist.c
#include<stdio.h>
#include<stdlib.h>
/*--- ノード ---*/
typedef struct _team{
char *name; //球団名
struct _team *next; //次の球団の位置
//前の球団の位置
}Team;
Team *head,tail; /* 先頭ノードへのポインタ */
Team *now,*new;
void main(){
//先頭の初期化
head = NULL;
new = calloc(1, sizeof(Team));
new->name="Fighters";
head =new;
now= new;
}