[1599] Re:自己参照構造体のソートの方法がわかりません
投稿者:バッファロー
2010/07/01 07:40:14
>>線形リストをつくったのですが、リストに値をセットした後連結リストをソートしたい
>>のですが、わかりません。どなたか教えてください。
>
>だったらマージソート…と思ったのですが774RRさんに先に書かれてしまったので、
>本題からずれますが、
>
>> DATA *top = malloc(sizeof(DATA));
>
>最初にいきなりダミーのノードを作っていて、そのために以後、
>ループをまわすとき、p->nextを終了判定に使うことになっています。
>add()関数が微妙に楽になる以外、ここにダミーノードを置くことは
>あまりメリットがないんじゃないかなあ、と私は昔から思っているのですが
>(センス・オブ・プログラミングに書いたりもしましたが)どうなんでしょうねえ。
>
>あとまあ、ものすごく細かいことですが、
>
>>int SUM(DATA *data)
>>{
>> return data->language+data->language;
>>}
>
>ここはdata->math + data->languageですよね。
>
>また、連結リストのソートは、効率を気にしないのなら単純選択ソートとかでも
>できるんじゃないでしょうか。
>
>・連結リストを頭からスキャンして、最大値のノードを探す。
>・最大値のノードをリストから引っぺがし、ソート済みリストの先頭につなぐ。
>・上記操作を繰り返す。
>
貴重なご意見ありがとうございました。
たしかにdata->math + data->languageでした。