線型構造を勉強してるんだけど
int list_insert(Node *list,int in_number,int value)
{
Node *pos_node=list,*new_node;

if(in_number < 0)
in_number = 0; // 限界値チェック

new_node=malloc(sizeof(Node));
if(new_node == NULL)
return 1;

// 目的位置の一個前まで移動
while(in_number > 1 && pos_node->next != NULL)
{
pos_node = pos_node->next;
in_number--;
}

// 挿入ノードに 元目的位置のポインタ
// および 挿入する値 を代入し
new_node->next = pos_node->next;
new_node->value = value;

// 目的位置の一個前に挿入ノードを連結
pos_node->next = new_node;

return 0;
}