next up previous contents
Next: 途中への挿入 Up: リストの追加 Previous: 先頭への追加   Contents

末尾への追加

末尾のデータは、次のデータへのポインタがNULLであるデータである。 従って、nextがNULLであるデータに対して、 nextを新規に追加されるデータのメモリ番地とすればよい。 末尾への追加するイメージは、図9.5のようなものである。

Figure 9.5: 末尾への追加イメージ
\begin{figure}
\begin{center}
\epsfile{file=fig9_5.eps,height=3.5cm}
\end{center}\end{figure}

また、ソースコードの例は以下のようなものである。 この例では、末尾に追加されたリストへのポインタを返している。 また、リストの先頭を示すheadがNULLの場合、すなわち、 リストがまだ1つも存在しなかった場合を考慮している。


list *add_to_last(list *head, void *val){
list *it, *last;
last = (list *)malloc(sizeof(list));
last->val = val;
last->next = NULL;
it = head;
if( it == NULL ){
head = last;
return(head);
}
while(it->next != NULL){
it = it->next;
}
it->next = last;
return(last);
}



kojima hirohisa
2001-03-05