-1

I am having a hard time figuring out why my delete function is not working. It is a boolean that needs to return if an item was deleted. Any help would be appreciated

boolean delete(SLL *list, String str){
    NODE *current, *previous,*temp;
    temp=malloc(sizeof(Employee));
    previous=NULL;
    current = list -> head;


    while(current->next!=NULL) {
        if(strcmp(current->anEmployee->name, str) == 0){
            if(current=list->head){
                list->head=current->next;
            }

            if(previous->next == NULL){//item not found in list
                return 0;
            }
        else { //current is to be deleted
            temp->next=current->next;
            previous->next=temp->next;

            return 1;
        }
    }
}
4

2 に答える 2

2

current を list->head (最初はリストのルート ノード) と比較する if ステートメントは、ノードを比較するのではなく、current に割り当てています。

于 2012-04-13T20:03:59.667 に答える
0

コードを記述する前に、リンクされたリスト内のノードを削除する際に処理する必要があるさまざまなケースを知っておく必要があります。以下が役立つ場合があります。

  1. リンクリストからノードを削除

  2. リンクされたリスト内の特定の値を持つすべてのノードを削除する

于 2012-04-13T20:04:16.313 に答える