作业一、单链表的按位置修改
/*
* function: 按位置修改
* @param [ in] 链表 位置
* @param [out]
* @return 成功返回0 失败返回-1
*/
int update_pos(linklist L,int pos ,datatype e)
{
//判断头结点是否存在
//判断链表是否为空
//判断位置是否合法
if(L==NULL||L->len==0||pos<1||pos>L->len)
{
printf("修改失败\n");
return -1;
}
//找到pos,起名字p,重新赋值
linklist p=L;
for(int i=0;i<pos;i++)
{
p=p->next;
}
p->data=e;
return 0;
}
作业二、单链表的按元素修改
/*
* function: 按元素修改
* @param [ in] 头结点 修改的元素
* @param [out]
* @return 成功返回0 失败返回-1
*/
int update_data(linklist L,datatype key,datatype e)
{
int pos=search_data(L,key);
if(pos==-1)
{
printf("修改元素失败\n");
return -1;
}
//根据位置修改
update_pos(L,pos,e);
return 0;
}
作业三、单链表的空间释放
/*
* function: 释放空间
* @param [ in] 链表
* @param [out]
* @return 返回NULL
*/
linklist free_space(linklist L)
{
if(L==NULL)
return NULL;
for(int i=0;i<L->len;i++)
{
delete_head(L);
}
free(L);
L=NULL;
return L;
}