手から出たゴミ

食って、寝て、糞をする合間で作り出されたゴミ

線形リストで入力した文字列を逆順出力

やったこ

コンパイラ 第1章の演習問題1のプログラムを書いた

  • 問題

入力された文字列を内部でリンクトリストで保持し、逆順で出力

リンクトリストとは

連結リストのこと データ構造において、自身のデータとnextなどによって自分とは異なるデータへアクセスする情報を 持つことによりデータのリンクが可能なリスト。

参考

C言語で実装しろとのことなので、2ヶ月ぶりに書いたコードが下記のものだ

#include <stdio.h>

struct node{
    char item[20];
    struct node *next;
}NODE[10],*pt;


int main(void){
    int i;
    while(scanf("%s",NODE[i].item)!=EOF){
        i++;
    }
    while(i!=0){
        i--;
        NODE[i].next = &NODE[i-1];
        NODE[0].next = NULL;
    }
    pt = &NODE[tmp];
    while(pt!=NULL){
        printf("%s\n",pt->item);
        pt = pt->next;
    }
    return 0;
}

感想

所要時間 1.5h

久しぶり過ぎて、構造体、ポインタなどの使い方を忘れていたので時間がかかった

NODE[10]で数を指定しているため、 mainの中でデータの数を指定できるように改善する必要がある