#include #include #include /* 構造体の定義 */ typedef struct tag { int weight; /* 体重 */ int height; /* 身長 */ struct tag *next; /* 自分自身の型へのポインタ変数 */ } person; /* 個人データ */ /* 新データの作成 */ person *makeNewNode(int h, int w) { person *pNewNode; /*** person 型のメモリ領域確保 ***/ pNewNode = (person *)malloc(sizeof(person)); if (pNewNode != NULL) { /*** データ設定 ***/ pNewNode->height = h; pNewNode->weight = w; pNewNode->next = NULL; } return pNewNode; } int main(void) { /* 個人データのポインタ */ person *pNow, *pData1, *pData2, *pData3, *pData4; /* データを登録 */ pData1 = makeNewNode(180, 80); pData2 = makeNewNode(140, 38); pData3 = makeNewNode(160, 65); pData4 = makeNewNode(150, 60); /* 身長順に並べる処理をここに書く */ pData2->next = pData4; pData4->next = pData3; pData3->next = pData1; /* ここまで */ /* 小さい順に出力 */ pNow = pData2; /* 一番小さいのは pData2 */ /* pNow が NULL になるまで出力 */ while (pNow != NULL) { /* 出力 */ printf("weight: %d\n", pNow->weight); printf("height: %d\n", pNow->height); printf("\n"); /* データを次に進める */ pNow = pNow->next; } return 0; }