/* データの型定義 */ typedef struct { char name[20]; int age; float weight; float height; } DATA; /* リストノードの型定義(内生的) */ typedef struct node { DATA data; struct node *next; } NODE; /* リストの先頭を指すポインタ(first)の定義 */ NODE *first_p;
NODE *node_p; /* 例えば挿入に際して、ノードを新規作成する */ node_p = malloc( sizeof(NODE) ); node_p->next = NULL; strcpy( node_p->data.name, "Hiroshi"); node_p->data.age = 20; node_p->data.weight = 60.0; node_p->data.height = 175.0; /* 例えば削除して、不要になったノード領域の解放 */ free( node_p );
/* リストの先頭を指すヘッダ(first)の定義 */ NODE first, *node_p; /* リストの最後に挿入する */ for( node_p = &first; node_p->next != NULL; node_p = node_p->next ) ; node_p->next = malloc( sizeof(NODE) ); node_p->next->next = NULL;
/* データの型定義 */ typedef struct { char name[20]; int age; float weight; float height; } DATA; /* リストノードの型定義(外生的) */ typedef struct node { DATA *data_p; struct node *next; } NODE; /* リストの先頭を指すポインタ(first)の定義 */ NODE *first_p;
NODE *node_p; /* 例えば挿入に際して、ノード・データを新規作成する */ node_p = malloc( sizeof(NODE) ); node_p->data_p = malloc( sizeof(DATA) ); node_p->next = NULL; strcpy( node_p->data_p->name, "Hiroshi"); node_p->data_p->age = 20; node_p->data_p->weight = 60.0; node_p->data_p->height = 175.0; /* 例えば削除して、不要になったノード・データ領域の解放 */ free( node_p->data_p ); free( node_p );
/* リストの先頭を指すヘッダ(first)の定義 */ NODE first, *node_p; /* リストの最後に挿入する */ for( node_p = &first; node_p->next != NULL; node_p = node_p->next ) ; node_p->next = malloc( sizeof(NODE) ); node_p->next->data_p = malloc( sizeof(DATA) ); node_p->next->next = NULL;