C 언어 2단계 포인터 단일 체인 테이블 노드 삭제

532 단어 2단계 지침
일반적으로 단일 체인 테이블에서 노드를 삭제하려면 다음 절차가 필요합니다.
1) Find previous node of the node to be deleted. 2) Changed next of previous node. 3) Free memory for the node to be deleted.
coolshell에서 2단계 포인터 삭제 노드에 대한 linus의 표현을 보았습니다.
void remove_if(node ** head, remove_fn rm)
{
    for (node** curr = head; *curr; )
    {
        node * entry = *curr;
        if (rm(entry))
        {
            *curr = entry->next;
            free(entry);
        }
        else
            curr = &entry->next;
    }
}

좋은 웹페이지 즐겨찾기