尾删函数
int list_delete_tail(LinkList *L)
{
if(NULL==L||linklist_empty(L))
{
printf("查找失败");
return -1;
}
//找到最后结点删除
LinkList *p=L->next;
LinkList *q=NULL;
while(p->next!=NULL)
{
q=p;
p=p->next;
}
free(q->next);
q->next=NULL;
printf("尾删成功\n");
return 0;
}
按位置修改函数
int list_updata_pos(LinkList *L,int pos,datatype e)
{
//判断
if(NULL==L||linklist_empty(L)||pos<0||pos>L->len)
{
printf("查找失败\n");
return -1;
}
//修改-对应位置值, 知道位置
LinkList *q=list_find(L,pos);
q->data=e;
return 0;
}
成按值修改函数
int list_updata_value(LinkList *L,datatype old_e,datatype new_e)
{
if(NULL==L||linklist_empty(L))
{
return -1;
}
//查找逻辑
LinkList *q=L->next;
for(int i=1;i<=L->len-1;i++)
{
if(q->data==old_e)
{
q->data=new_e;
}
q=q->next;
}
return 0;
}
链表反转函数
//链表反转
void list_reverse(LinkList *L)
{
//反转逻辑--依次往前插入
LinkList *p=L->next->next;
L->next->next=NULL;
//删除操作
LinkList *q=NULL;
while(p!=NULL)
{
q=p->next;
p->next=L->next;
L->next=p;
p=q;
}
}