ホーム » スタッフ » 斉藤徹 » リストの考え方の導入

2011年6月
« 5月   7月 »
 1234
567891011
12131415161718
19202122232425
2627282930  

最近の投稿(電子情報)

アーカイブ

カテゴリー

リストの考え方の導入

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

配列の添字でリスト

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 ) ;