int list_updata_value(Linklist *L,datatype old_e,datatype new_e)
{
if (NULL == L || list_empty(L))
{
printf("链表不合法\n");
return -1;
}
int n = list_search_value(L,old_e);
if (n<0)
{
printf("未找到该值\n");
return -1;
}
list_updata_pos(L,n,new_e);
}
被调函数
int list_search_value(Linklist *L,datatype e)
{
//判断逻辑
if (NULL == L || list_empty(L))
{
//printf("链表不合法\n");
return -1;
}
//查找逻辑
Linklist *q = L->next;
for (int i=0;i<L->len;i++)
{
if (q->data == e)
{
return i;
}
q = q->next;
}
return -1;
}
//---------------------------------按位置修改---------------------------------------
//按位置修改
int list_updata_pos(Linklist *L,int pos,datatype e)
{
//判断逻辑
if (NULL == L || list_empty(L))
{
printf("链表不合法\n");
return -1;
}
if (pos<0 || pos>L->len)
{
printf("位置不合法\n");
return -1;
}
Linklist *q = find_node(L,pos);
q->data = e;
printf("修改成功\n");
q = NULL;
}