Cのソートについて
Posted: 2010年4月11日(日) 20:32
Cのソートについて質問です。
struct Data
{
int code; // 社員コード
char name[32]; // 氏名
int birth; // 誕生日
struct Data *next // 次のデータを指すポインタ
}
上のような構造体を宣言したとします。
*nextの部分にstruct Data分の領域をmallocし、次のデータとして、データを増やしていきます。
この時、社員コード,又は指名の昇順にソートしたいのですが、データを入れ替えるのではなく、*nextの値だけを書き換えて昇順に参照できるようにしたいのですが、どうしてもやり方がわかりません・・
struct Data shain
{
{3,"murata",19830215,社員コード = 2のデータが格納されている構造体の先頭アドレス}, // 先頭アドレス
{2,"nakata",19870421,社員コード = 1のデータが格納されている構造体の先頭アドレス},
{1,"kubota",19790615,NULL},
};
上のようにデータが入っているとして、"murata"のデータがshainの先頭アドレスとします。
それを以下のようにソートしたいのです。
struct Data shain
{
{3,"murata",19830215,NULL},
{2,"nakata",19870421,社員コード = 3のデータが格納されている構造体の先頭アドレス},
{1,"kubota",19790615,社員コード = 2のデータが格納されている構造体の先頭アドレス}, // 先頭アドレス
};
そして、shainの先頭アドレスを"kubota"に設定したいのです。
このやり方をどなたか、教えてもらえないでしょうか?
よろしくお願いします。
struct Data
{
int code; // 社員コード
char name[32]; // 氏名
int birth; // 誕生日
struct Data *next // 次のデータを指すポインタ
}
上のような構造体を宣言したとします。
*nextの部分にstruct Data分の領域をmallocし、次のデータとして、データを増やしていきます。
この時、社員コード,又は指名の昇順にソートしたいのですが、データを入れ替えるのではなく、*nextの値だけを書き換えて昇順に参照できるようにしたいのですが、どうしてもやり方がわかりません・・
struct Data shain
{
{3,"murata",19830215,社員コード = 2のデータが格納されている構造体の先頭アドレス}, // 先頭アドレス
{2,"nakata",19870421,社員コード = 1のデータが格納されている構造体の先頭アドレス},
{1,"kubota",19790615,NULL},
};
上のようにデータが入っているとして、"murata"のデータがshainの先頭アドレスとします。
それを以下のようにソートしたいのです。
struct Data shain
{
{3,"murata",19830215,NULL},
{2,"nakata",19870421,社員コード = 3のデータが格納されている構造体の先頭アドレス},
{1,"kubota",19790615,社員コード = 2のデータが格納されている構造体の先頭アドレス}, // 先頭アドレス
};
そして、shainの先頭アドレスを"kubota"に設定したいのです。
このやり方をどなたか、教えてもらえないでしょうか?
よろしくお願いします。