作业1:完成尾删函数:int list_delete_tail(Linklist *L);
//尾删
int list_delete_tail(Linklist*L)
{
//判断逻辑
if(NULL == L || list_empty(L))
{
printf("删除失败n");
return -1;
}
//尾删
Linklist *q = find_node(L,L->len-1);//找到前驱
Linklist *p = q->next; //标记
q->next = p->next; //孤立
free(p); //踢开
p=NULL;
//表的变化
L->len--;
printf("删除成功n");
}
作业2:完成按位置修改函数 : int list_update_pos(Linklist *L, int pos, datatype e);
//按位置修改
int list_updata_pos(Linklist*L,int pos,datatype e)
{
//判断逻辑
if(NULL == L ||list_empty(L))
{
printf("空表,无法修改n");
return -1;
}else if(pos < 1 || pos > L->len)
{
printf("位置超限,无法修改n");
return -2;
}
//按位置修改
Linklist*p=find_node(L,pos);
p->data=e;
printf("修改成功n");
return 0;
}
作业3:完成按值修改函数: int list__update_value(Linklist *L, datatype old_e, datatype new_e);
作业4:完成链表反转函数:void list_reverse(Linklist *L);



