13-3. リスト構造
◇サンプルプログラム
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct item{ int number; struct item *next; int index; } *pStList; void main() { int index = 1, number; char command[10]; pStList address = NULL; pStList add(int, pStList, int); void show(pStList); while(1){ printf("Command ? = "); scanf("%s",command); if( strcmp(command,"add")==0){ printf("入力数値 = "); scanf("%d",&number); address = add(number, address, index); index++; } else if(strcmp(command,"show")==0){ show(address); } else if(strcmp(command,"exit")==0){ return; } else{ printf("Unknown Command ...\n"); } } } pStList add(int number,pStList address, int index) { pStList NextList; NextList = malloc(sizeof *NextList); if ( NextList == NULL ) return NULL; NextList->number = number; NextList->next = address; NextList->index = index; return NextList; } void show(pStList address) { while( address != NULL ){ printf("No.%d [%d]\n",address->index, address->number); address = address->next; } printf("\n"); }
本当はデータを文字列にして、1番から順番に表示させたいのですが、そうするとコードが長くなるのでこの辺にとどめました。(時間切れ)