- 535 名前: ◆25LbU5YSxg mailto:sage [2008/11/10(月) 18:09:49 ]
- [1] 授業単元:プログラミング演習
[2] 問題文: プログラム1を改良し、データをファイルから読み込みつつ小さい順にソートして格納するプログラムを作成せよ、。 手順を以下に示す。 1.cell構造体へのポインタとして、struct cell *new、*start、*p1、*p2;の4つを準備し、それぞれNULLで初期化する。 2.データファイルからデータ数を読み込む。 3.データを1つ読み込み、cell構造体を作成してnewにセットした後、その構造体に格納。 ・はじめてのデータであれば、ポインタstartとp1をnewにセット。 ・2つ目のデータであれば、p2をnewにセットし、p1が示すリスト要素(構造体)の次に追加接続する。 ただし、2つ目のデータが1つ目のデータよりも小さい場合には、p1とp2の指す構造体内のデータを入れ替える。 もしくはリスト要素(構造体)自体の位置を入れ替えポインタをセットし直す必要があることに注意。 ・3つ目以降のデータであればリスト先頭から順に走査を行う。この際、p1、及びp2をそれぞれ1つずつリスト内の次の要素に進めてゆく。 。読み込まれたデータが、リスト先頭要素(構造体)の持つ値より小さい場合には、新規作成された構造体newをリスト先頭に追加し、ポインタstartをnewにセットする。 。リスト途中で、p1には読み込まれたデータより小さい値、p2には読み込まれたデータより大きい値となる場所が見つかれば、この間に新規作成された構造体newを挿入する。 。リスト最後尾まで読み込まれたデータより大きい値が見つからなければ、新規作成された構造体newを最後尾に追加する。 4.3をデータ入力数だけ繰り返す。 5.全てのデータを読み込み終えたら、リスト先頭から順にデータを出力する。 num-data.txt 5 23 43 67 14 9
|

|