链表删除问题,只能删除第一个成员,是什么问题???
/*声明链表结构,并有指向下一个结构的指针*/struct List
{
char Name[TSIZE];
char Model[TSIZE];
float Width;
float yaxiandepth ;
struct List *next; /*指向下一个结构的指针*/
};
struct List *head = NULL ; /*声明一个指向链表的头部指针*/
struct List *prev , *current ; /*声明前指针,当前指针*/
void list_delete()
{
char key[TSIZE];
printf("\n\t删除型号: ");
scanf("%s",key);
int r;
struct List *ptmp ; //声明一个链表节点临时针指
current=head;
while(current!=NULL)
{
r=strcmp(current->Model,key);
if(!r)
{
ptmp = current->next ; //保存当前的下一个地址
free(current); //释放当前指针
current=ptmp ; //把下一个地址赋值给当前指针
printf("\n\t已删除%s...\n\n",key);
}
current=current->next ;
}
}