趣味でC言語の連結リストを作っています。C++のstd::listと同じように使えることが目標です。
lis (singly linked list for C language)
https://github.com/katahiromz/lis/blob/master/lis.h
https://github.com/katahiromz/lis/blob/master/lis.c
https://github.com/katahiromz/lis/blob/master/nod.h
https://github.com/katahiromz/lis/blob/master/nod.c
ファイル「lis.c」の865行目のlis_splice関数と、881行目のlis_splice_range関数を実装したいと考えております。プロトタイプは以下の通りです。
void lis_splice(PLIS pl, PNOD here, PLIS other, PNOD it);
void lis_splice_range(PLIS pl, PNOD here, PLIS other, PNOD begin, PNOD end);
型PLISは、構造体LISへのポインターです。PNODは、構造体NODへのポインターです。
構造体NODは、nod.hで宣言されており、ノードを表しています。
構造体LISは、lis.hで宣言されており、連結リストを表しています。
lis_splice関数は、連結リストotherにノードitを取り除き、連結リストplのノードhereがある場所に移動します。hereがNULLだったら、最後の方に移動します。
lis_splice_range関数は、連結リストotherにあるノード[begin, end)を取り除き、連結リストplのノードhereがある場所に移動します。hereがNULLだったら、最後の方に移動します。endがNULLだったら、begin以降のすべてのノードを移動します。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。