next up previous contents
Next: 課題8 Up: リストの追加 Previous: 末尾への追加   Contents

途中への挿入

途中に挿入する場合には、挿入する位置を指定しなければならない。 指定された要素の次に挿入する場合のイメージは図9.6のようなものである。

Figure 9.6: 途中への挿入イメージ
\begin{figure}
\begin{center}
\epsfile{file=fig9_6.eps,height=3.5cm}
\end{center}\end{figure}

指定された要素の次の要素が新規に追加される要素であり、 追加された要素の次の要素になる要素は、指定要素が以前示していた次の要素である。 この処理を実装すると次のようになる。 なお、追加された要素へのポインタを返り値としている。


list *add_to_mid(list *key, void *val){
list *next, *mid;
mid = (list *)malloc(sizeof(list));
mid->val = val;
mid->next = NULL;
if( key == NULL ){
return(mid);
}
next = key->next;
key->next = mid;
mid->next = next;
return(mid);
}



kojima hirohisa
2001-03-05