線形リスト

戻る

::::::::::::::
List.c
::::::::::::::
/**
* $Id: list-by-c2.html,v 1.1 2009/06/22 16:12:16 kishi Exp kishi $
* @author KISHI Yasuhiro
*/

#include <stdio.h>

typedef struct list {
    char* value;
    struct list *next;
}
LIST;

LIST* init_list( LIST *p ) {
    p = ( LIST* ) malloc( sizeof( LIST ) );
    p->next = NULL;

    return p;
}

void append( LIST *p, char* value ) {
    LIST * temp = p;
    while ( temp->next != NULL ) {
        temp = temp->next;
    }

    LIST* new = ( LIST* ) malloc( sizeof( LIST ) );
    temp->next = new;
    new->value = value;
    new->next = NULL;
}

void enumerate( LIST* p ) {
    p = p->next;
    while ( p->next != NULL ) {
        printf( "%s\n", p->value );
        p = p->next;
    }
    printf( "%s\n", p->value );
}

int
main () {

    LIST * head;

    head = init_list( head );

    append( head, "ABC" );
    append( head, "XYZ" );

    enumerate( head );

    return 0;
}

■実行結果

$ ./List.exe
ABC
XYZ

戻る

inserted by FC2 system