テストを明日からに控え、新しい所に入りたくはないけど、 配列の利点や欠点を理解するためにも、ランダムアクセスやシーケンシャルアクセスの 話を取り混ぜながら、導入説明を行う。
配列の添字でリスト
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 ) ;