代码:
int list_delete_tail(Linklist *L)
{
if(NULL==L || list_empty(L))
{
printf("删除失败n");
return -1;
}
Linklist *q=L;
while(q->next->next!=NULL)
{
q=q->next;
}
Linklist *p=q->next;
q->next=p->next;
free(p);
p=NULL;
L->len--;
printf("尾删成功n");
return 0;
}
结果运行图:
代码:
int list_update_pos(Linklist *L,int pos,datatype e)
{
if(NULL==L || list_empty(L) || pos<1 || pos>L->len)
{
printf("修改失败n");
return -1;
}
Linklist *q=find_node(L,pos);
q->data=e;
printf("修改成功n");
return 0;
}
运行:list_update_pos(L,1,'Z');
int list_update_value(Linklist *L,datatype old_e,datatype new_e)
{
if(NULL==L || list_empty(L))
{
printf("修改失败n");
return -1;
}
Linklist *p=L;
while(p->next!=NULL)
{
p=p->next;
if(p->data==old_e)
{
p->data=new_e;
printf("修改成功n");
return 0;
}
}
printf("未找到值,修改失败n");
return -2;
}
运行:list_update_value(L,'R','Z');
代码:
void list_reverse(Linklist *L)
{
Linklist *q=L;
int n=L->len;
for(int i=1;i<=n;i++)
{
q=q->next;
list_insert_head(L,q->data);
}
while(L->len!=n)
{
list_delete_tail(L);
}
printf("翻转完成n");
}



