C言語で双方向リンクリストとそれを操作するライブラリ。
セキュリティキャンプ2019の応募課題で提出したプログラムです。
OSを実装する上で基礎となるC言語の力を見る問題です。
- C.1. C言語で双方向リンクリストとそれを操作する関数を作り、ソースコードを提出してください。 リンクリストを生成する関数、要素を任意の場所に挿入する関数、全ての要素を順に標準出力に印字する関数、の3つがあれば十分です。 やる気があればもっとたくさんの機能を実装しても構いません!
- C.2. 設計・実装で工夫した点を述べてください。
なるべくC++のlistと同じことができるように関数を作りました.
イテレータを使えるようにしました.
list構造体にbeginだけでなくendも記憶させることで,push_backとpush_frontの処理時間がなるべく同じになるようにしました.
また,nodeに記憶できる値をvoid型ポインタにすることで,型に関係なくある程度なんでもlist化できるようにしました.
また,静的ライブラリとしてまとめられるように,ソースの分割とMakefileを書きました.