線形リスト関連演習/課題
ポインターを利用した線形リストの演習課題
ポインタを利用した線形リストに対して、以下の処理をした場合の過程をイメージ図と対応するプログラムコードで書け
- データを末尾に追加する場合
- データを先頭に追加する場合
- データを途中に追加する場合
- 先頭のデータを削除する場合
- 末尾のデータを削除する場合
- 途中のデータを削除する場合
- データを入れ替える場合
上記問題は、片方向、双方向、連結、重連結のいずれの線形リストの場合でも書けるようになること。
サンプルプログラム・ダウンロード(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;
}
}
循環、重連結リストの演習問題