単連結リストの整列 #98 二教科の成績へのインタフェイス
安定な整列の有用性の例として基数ソートを挙げたが、
そんな狭い問題領域の話ではね、ということもあるだろう。
ということで、唐突に、学生の二つの教科の成績が一塊のレコードであるようなデータの整列の話。
school_record.h
typedef struct tag_school_record school_record_t; typedef enum { GRADE_A=9, GRADE_B=5, GRADE_C=1 } grade_t; school_record_t *school_record_new(const char *name, grade_t maths, grade_t physics); void school_record_dispose(school_record_t *rec); const char *school_record_get_name(school_record_t *rec); grade_t school_record_get_maths(school_record_t *rec); grade_t school_record_get_physics(school_record_t *rec);
ひとりの学生の算数と理科の成績と名前を情報とするレコードの生成、後片付け、
そして各情報へのアクセッサのインタフェイスの定義。