循環・双方向リスト演習問題

演習問題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;

    }


    Comments