TakedaHiromasa / clang_list_lib

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clang list_library

C言語で双方向リンクリストとそれを操作するライブラリ。
セキュリティキャンプ2019の応募課題で提出したプログラムです。

課題内容

■共通問題C

OSを実装する上で基礎となるC言語の力を見る問題です。

  • C.1. C言語で双方向リンクリストとそれを操作する関数を作り、ソースコードを提出してください。 リンクリストを生成する関数、要素を任意の場所に挿入する関数、全ての要素を順に標準出力に印字する関数、の3つがあれば十分です。 やる気があればもっとたくさんの機能を実装しても構いません!
  • C.2. 設計・実装で工夫した点を述べてください。

設計・実装で工夫した点

なるべくC++のlistと同じことができるように関数を作りました.
イテレータを使えるようにしました.
list構造体にbeginだけでなくendも記憶させることで,push_backとpush_frontの処理時間がなるべく同じになるようにしました.
また,nodeに記憶できる値をvoid型ポインタにすることで,型に関係なくある程度なんでもlist化できるようにしました.
また,静的ライブラリとしてまとめられるように,ソースの分割とMakefileを書きました.

About

License:MIT License


Languages

Language:C 92.5%Language:Makefile 7.5%