我得到了一些東西的工作,但我仍然不能得到最後一個元素刪除工作它只留下垃圾在它的地方,而不是刪除它。我知道這段代碼看起來不太好,但基於我目前的知識,這就是我所能做的:x。所以,如果有人能幫助我,讓我刪除最後一個元素,工作或告訴我,我做錯了什麼在這裏將是巨大的從鏈表中刪除元素
struct item {
char item_name[30];
char item_state[30];
float item_price;
char item_status[30];
float item_price_if_not;
struct item *next;
};
struct client {
char client_name[30];
char client_last_name[30];
struct item *item_data;
struct client *next;
};
void DeleteClient2(struct client *temp,struct client **head) {
struct client *prev=*head;
struct client *current = *head;
struct item *currentitem = (*head)->item_data,*save;
if(temp== *head) {
while(currentitem != NULL) {
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
free(temp);
temp->item_data = NULL;
(*head) = (*head)->next;
}
else if(temp->next == NULL) {
while(currentitem != NULL) {
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
temp->item_data = NULL;
free(temp);
}
else if(temp != *head && temp->next != NULL) {
while(prev->next != temp) {
prev=prev->next;
}
prev->next = temp->next;
while(currentitem != NULL) {
save = currentitem;
currentitem = currentitem ->next;
free(save);
}
temp->item_data = NULL;
free(temp);
temp=temp->next;
}
}
如果有人願意幫助它,那麼改變了大部分代碼會很好,看起來我的代碼並沒有刪除最後一個元素,並且中間似乎工作正常。 – user3209183