すいません、うまく省略しようとして失敗しました・・・
insertの中身はこんなかんじです。


current = root;/* 現在地をルートに設定 */
new = (struct AddressList *)malloc(sizeof(struct AddressList));/* 新しいノードのメモリ確保 */
new->addr = ad;
if( n == 0 ){/* リストの先頭に挿入する場合 */
new->next = root;
root = new;
}
else{/* 挿入位置が先頭でない場合 */
for( i=0 ; i<n-1 ; i++){/* リストのn-1番目まで移動 */
if(current->next == NULL)/* 次がNULLならそこで終わり */
break;
current = current->next;
}

new->next = current->next;/* new の next をその時点でのn番目にする */
current->next = new;/* n-1番目のnextをnewに */
}