K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[812] (ぱ)さんに甘えさして頂きます
投稿者:負け組一号
2007/02/20 02:13:25

レス頂き、ありがとうございました。 そんで、(ぱ)さんに、甘えた質問さしていただきます。 ソースなんで長いですが自分でリストを理解しようと改造した線形リストです。 typedef struct list {     int num;     struct list *next; }list; int main() {     list sta ={0,NULL};     list *start = &sta; /*先頭*/     list *sagyou; /*作業領域*/     list *fo; /*for用*/     char str[16]; /*入力用*/     while(1) {         printf("整数を入力(Eで終了)-->");         gets(str);         if(strcmp(str,"E") != 0){//strcmpは文字列の比較             sagyou = (list *)malloc(sizeof(list));             if(sagyou == NULL ){                 printf("メモリ確保できず\n");                 exit(1);             }         }         else break;         sagyou->num = atoi(str);//atoiは文字列をint型に変換する         for(fo = start; fo->next != NULL; fo = fo->next){             if(sagyou->num < fo->next->num ){                 sagyou->next = fo->next;                 fo->next = sagyou;                 break;             }         }         if(fo->next == NULL){             fo->next = sagyou;             sagyou->next = NULL;         }     } で、上のリストで、数字を大きい順にしようとするとき for(fo = start; fo->next != NULL; fo = fo->next){     if(sagyou->num < fo->next->num ) の、fo->next->numは、その時点でのfoのnext側のnumを見てる と捉えて良いのでしょうか。ついで、malloc()で得たメモリは どこでfree()というやつで解放してやれば良いのでしょうか。 線形リスト、双方向リスト等、及び二分木探索などの例ばかりが 載ってる書籍を探しても、あるのは入門書ばかりで、初心者 から脱皮できない自分に負い目を感じる今日このごろです。
[この投稿を含むスレッドを表示] [この投稿を削除]