내 코드는 연결된 목록의 시작 부분에있는 요소에는 작동하지만 중간 또는 끝에있는 요소에는 작동하지 않습니다. 당신의 도움을 주셔서 감사합니다!이중 연결 목록에서 요소 제거
void remove(){
if (!head)
printf("\nNo nodes to delete. List is empty.");
else{
int n;
struct node* help = head;
printf("Enter an element to delete: ");
scanf("%d", &n);
if(head->data == n){
help-> next->prev = 0;
head = help -> next;
} else{
while(help -> next){
if(help -> data == n){
help -> next -> prev = help -> prev;
help -> prev -> next = help -> next;
}
else help = help -> next;
}
}
}
}
'remove()'의 매개 변수로 'n'을 사용하지 않는 이유는 무엇입니까? –
@ 의미 - 문제 왜 사람들은 항상 제기 된 질문에 답하는 대신 코드를 선택합니까? 귀하의 질문은 문제와 관련이 없으며 게시 된 코드는 게시자가 실제 프로젝트에 실제로 작성한 방식이 아닌 SO에 게시하기 위해 단순화 될 수 있습니다. – xaxxon
@shail이 어떻게 실패했는지에 대한 구체적인 예를 보여 주면 도움이 될 것입니다. 코드에 많은 문제가있어 코드를 다시 작성하지 않고 모두 지적하기가 어렵습니다 (SO에서 수행하면 안 됨) – xaxxon