2011
10/27
レポート課題2
課題
次の書きかけのプログラムを参考にし,data配列の中のデータ値を,LIST構造として連結せよ.ただし連結順は小さい値順にソートするものとする.
考察として,このプログラムに新たにデータを追加する際の計算量はどのくらいか見積り,もっと効率よく追加する方法を考えてみよ.
#include <stdio.h> #include <stdlib.h> typedef struct list{ int val; struct list *next; } LIST LIST *newlist(void); int main(void) { int i; LIST *head; LIST *p; int data[15]={4,6,8,11,3,15,14,7,12,5,1,9,10,2,13,0}; p=head=newlist(); p->val=data[0]; for(i=1; data[i]!=0; i++) { //LISTを確保してからそのvalにdata[i]を登録 //headから順に探索して,前セルの値<data[i]<次セルの値 //となるような位置に挿入 //LISTを挿入する関数を自分で作ってもよい. } for(;;) { //headから最後までprintfでval表示 } } LIST *newlist(void) { LIST *new = malloc(sizeof(LIST)); if(new==NULL) exit(EXIT_FAILURE); new->val=0; new->next=NULL; }
提出方法
- ワープロ作成でA4紙に印刷して提出
- 目次は 課題の説明,作成した処理の内容(理論),プログラムソース,入力と出力(結果),プログラムの説明と考察
締め切り
- 原則として来週の講義まで
- ただし,来年一月までは遅刻提出を受け付けるのであきらめないこと.