データ構造問題005:シングルチェーンテーブルのコピー(ANSI C)
624 ワード
データ構造問題005:シングルチェーンテーブルのコピー(ANSI C)
void clone_node( node_ptr src, node_ptr * dst )
{
if( src != NULL )
{
*dst = ( node_ptr )malloc( sizeof( node ) );
(*dst)->data = src->data;
}
else
*dst = NULL;
}
void clone_llist( link_list lst_src, link_list * lst_dst )
{
node_ptr t = NULL, p = NULL, s = NULL;
if( lst_src == NULL )
return;
p = lst_src->next;
*lst_dst = ( node_ptr )malloc( sizeof( node ) );
t = *lst_dst;
t->next = NULL;
while( p != NULL )
{
clone_node( p, &s );
s->next = t->next;
t->next = s;
t = s;
p = p->next;
}
}