//尾删
int list_deletetail(Linklist*l)
{
if(l==NULL||listempty(l))
{
printf("删除失败\n");
return -1;
}
Linklist*q=l;
Linklist*p;
while(q->next!=NULL)
{
p=q;
q=q->next;
}
p->next=NULL;
free(q);
}
//按位置修改
int list_update_pos(Linklist*l,int pos,datatye e)
{
if(l==NULL||listempty(l)||pos>l->len||pos<0)
{
printf("修改失败\n");
return -1;
}
Linklist*p=findnode(l,pos);
p->data=e;
return 0;
}
//按值修改
int list_update_value(Linklist*l,datatye olde,datatye newe)
{
if(l==NULL||listempty(l))
{
printf("修改失败\n");
return -1;
}
int x=list_searchvalue(l,olde);
if(x>=0)
list_update_pos(l,x,newe);
return 0;
}
//链表反转
void list_reverse(Linklist*l)
{
if(l==NULL||listempty(l))
{
printf("反转失败\n");
return;
}
int n;
datatye t;
n=l->len;
Linklist* a=l->next;
Linklist* b=findnode(l,n);
for(int i=1;i<=l->len/2;i++)
{
t=a->data;a->data=b->data;b->data=t;
a=a->next;
b=findnode(l,--n);
}
}