線形リスト関連演習/課題

ポインターを利用した線形リストの演習課題

ポインタを利用した線形リストに対して、以下の処理をした場合の過程をイメージ図と対応するプログラムコードで書け

    1. データを末尾に追加する場合
    2. データを先頭に追加する場合
    3. データを途中に追加する場合
    4. 先頭のデータを削除する場合
    5. 末尾のデータを削除する場合
    6. 途中のデータを削除する場合
    7. データを入れ替える場合

上記問題は、片方向、双方向、連結、重連結のいずれの線形リストの場合でも書けるようになること。

サンプルプログラム・ダウンロード(2014年版)

プログラム作成演習

ノードを表す構造体Node (kadai.cppファイル)

//ノードを表す構造体

typedef struct _node{

char *name;

struct _node *next;

} Node;

ノードを生成する関数allocNode(kadai.cppファイル)

Node* allocNode(){

Node *node;

node = (Node *)malloc(1);

node->next=NULL;

return node;

}

演習用関数kadai05_1(kadai.cppファイル)

void kadai05_1(){

Node *head,*node,*now;

node = allocNode();


head = now = node;

now->name="あああ";

now=head;

while(now!=NULL) {

printf("%s\n",now->name);

now=now->next;

}

}

循環、重連結リストの演習問題