リスト処理の基本

来週からのテストということもあり、前半に簡単なリスト処理の基本を説明したあと、 後半はテスト勉強時間とした。

最初に復習のおまけとして、typedef や C++でのリストの宣言の違いを説明。

// 授業でのスタイル
struct List {
    int          data ;
    struct List* next ;
} ;

// C言語でtypedefを使うスタイル
typedef struct LIST {
    int          data ;
    struct LIST* next ;
} List ;
List* top = .... ;

// C++では、構造体名がそのまま使える
struct List {
    int   data ;
    List* next ;
} ;
List* top = .... ;

簡単な補助関数を示して、基礎的なプログラム例を演習として行う。

struct List* cons( int x , struct List* n ) {
    struct List* ans ;
    if ( (ans=(struct List*)malloc(sizeof(struct List)))!=NULL ) {
        ans->data = x ;
        ans->next = n ;
    }
    return ans ;
}
void print( struct List* p ) {
    for( ; p != NULL ; p = p->next ) {
        printf( "%d" , p->data ) ;
    }
}
int sum( struct List* p ) {
    int ans ;
    for( ans = 0 ; p != NULL ; p = p->next ) {
        ans += p->data ;
    }
    return ans ;
}
void main() {
    struct List* top = cons( 1 , cons( 2 , cons( 3 , NULL ) ) ) ;
    print( top ) ;
    printf( "%d" , sum( top ) ) ;
}
 

2015年12月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

アーカイブ

Google

このブログ記事について

このページは、T-Saitohが2012年5月31日 11:53に書いたブログ記事です。

ひとつ前のブログ記事は「FD講演会で認証評価に関する講演」です。

次のブログ記事は「twitter-botが治った...」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。