テストを明日からに控え、新しい所に入りたくはないけど、 配列の利点や欠点を理解するためにも、ランダムアクセスやシーケンシャルアクセスの 話を取り混ぜながら、導入説明を行う。
配列の添字でリスト
struct List { int data ; int next ; } ; int top = 2 ; struct List table[] = { { 56 , 1 } , // 0 { 78 , -1 } , // 1 { 12 , 3 } , // 2 { 34 , 0 } , // 3 } for( int p = top ; p >= 0 ; p = table[ p ].next ) { printf( "%d" , table[ p ].data ) ; }
次のアドレスでリスト
struct List { int data ; struct List* next ; } ; struct List* top ; top = (struct List*)malloc( sizeof( struct List ) ) ; top->data = 12 ; top->next = (struct List*)malloc( sizeof( struct List ) ) ; top->next->data = 34 ; top->next->next = (struct List*)malloc( sizeof( struct List ) ) ; top->next->next->data = 56 ; top->next->next->next = NULL ; struct List* p ; for( p = top ; p != NULL ; p = p->next ) printf( "%d" , p->data ) ;