指定されたキーを削除するというコードです。
scanf("%d",&data); //指定するキーをdataに入れる
a = &listhead; //listheadのアドレスをaに入れる
while(a -> next != NULL){ //listheadの中の変数nextがNULLでない間
if( a -> next -> key == data) //listheadの変数nextに入っているkeyがdataと同じだったら
break;
a = a -> next; //aをaの変数nextのアドレスに変える
}
if( a -> next == NULL) //aの変数nextがNULLだったら
prtinf("キーがありません");
else {
ptr = a -> next; //①
a -> next = ptr -> next (またはa -> next -> next);②
free( ptr ); //ptrを削除(解放)
}
このように解釈しているのですが、特に①と②で何をしているのかがわかりません。
ptrが宣言されていないので、ptrが何なのか、aとの違いはなんなのか....
ご教授いただけたらと思います。
よろしくお願いいたします。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。