3番目の要素の前に新しい要素を挿入し、その値を100として再び要素の値を出力せよ
という課題が出ました。
図で説明されたので、どういうことをすればいいのかは理解できましたが、コードに関しては全く分かっていない状態です。
どなたかわかりやすく教えていただけないでしょうか?
よろしくお願いします。
/////////////////////////////////////////////
//N個整数を格納する連結リストを作成せよ。
/////////////////////////////////////////////
#include <stdio.h>
#include <stdlib.h>
//10個の要素を生成する。適当に変更してもよい
#define N 10
//連結リストの要素を表す構造体を定義する
struct cell {
int data;
struct cell *next;
};
//簡潔に書けるため、型を定義する
typedef struct cell Cell;
void main(void)
{
int i;
Cell *head, *p;
head = (Cell *)malloc(sizeof(Cell));
(*head).data = 10+(int)(rand()*
(50-10+1.0)/(1.0+RAND_MAX));
p = head;
for(i=1;i<N;i++){
(*p).next = (Cell *)malloc(sizeof(Cell));
p = (*p).next;
p->data = 10+(int)(rand()*
(50-10+1.0)/(1.0+RAND_MAX));
}
p->next = NULL;
p = head;
while(NULL != p){
printf("data = %d\n",(*p).data);
p = p->next;
}
return;
}