思维导图
// 按位置进行修改
int list_update_pos(LinkListPtr L, int pos, datatype e)
{
if (NULL == L || list_empty(L) || pos < 1 || pos > L->len)
{
printf("修改失败\n");
return 0;
}
list_search_pos(L, pos)->data = e;
printf("修改成功\n");
return 1;
}
// 按值进行修改
int list_update_value(LinkListPtr L, datatype value, datatype e)
{
if (NULL == L || list_empty(L))
{
printf("修改失败\n");
return 0;
}
int flag = 0;
for (int i = 1; i <= L->len; i++)
{
if (list_search_pos(L, i)->data == value)
{
list_search_pos(L, i)->data = e;
flag++;
}
}
if (flag == 0)
{
printf("修改失败\n");
return 0;
}
printf("修改成功\n");
return 1;
}
// 链表排序
void list_sort(LinkListPtr L)
{
if (NULL == L || L->len <= 1)
{
printf("排序失败\n");
return;
}
LinkListPtr p=L->next;
for(int i=1;i<L->len;i++){
LinkListPtr q=p;
int min_index=i;
for(int j=i;j<=L->len;j++){
if(q->data<list_search_pos(L,min_index)->data){
min_index=j;
}
q=q->next;
}
if(min_index!=i){
datatype temp=p->data;
p->data=list_search_pos(L,min_index)->data;
list_search_pos(L,min_index)->data=temp;
}
p=p->next;
}
printf("排序成功\n");
}